https://github.com/apache/dubbo/blob/532ce72f8377abf8ff659430b86e0919c9aff562/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java#L240-L248 

What ever user use `instance` service discovery or `interface` service discovery, we also publish service name mapping info. 
But service name mapping need metadata report dependency, so if some one just use `interface` service discovery, the user still need need metadata report dependency.

Here we add a judgement, check current service config use `instance` service discovery or not, to judge publish service name mapping or not.

serviceMetadata.setServiceType(getInterfaceClass());
        serviceMetadata.setTarget(getRef());
        serviceMetadata.generateServiceKey();
    }
    public synchronized void export() {
        if (this.shouldExport() && !this.exported) {
            this.init();
            
            if (!bootstrap.isInitialized()) {
                throw new IllegalStateException("DubboBootstrap is not initialized");
            }
            if (!this.isRefreshed()) {
                this.refresh();
            }
            if (!shouldExport()) {
                return;
            }
            if (shouldDelay()) {
                DELAY_EXPORT_EXECUTOR.schedule(this::doExport, getDelay(), TimeUnit.MILLISECONDS);
            } else {
                doExport();
            }
            if (this.bootstrap.getTakeoverMode() == BootstrapTakeoverMode.AUTO) {
                this.bootstrap.start();
            }
        }
    }
    protected void exported() {
        exported = true;
        List<URL> exportedURLs = this.getExportedUrls();