Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
salesforce API jar的Maven着色jar中的java.lang.NoClassDefFoundError_Java_Maven_Jar_Salesforce - Fatal编程技术网

salesforce API jar的Maven着色jar中的java.lang.NoClassDefFoundError

salesforce API jar的Maven着色jar中的java.lang.NoClassDefFoundError,java,maven,jar,salesforce,Java,Maven,Jar,Salesforce,我有一个导入类的Apache Maven Java项目: com.sforce.soap.enterprise.EnterpriseConnection 从IntelliJ运行项目时,我在执行代码时没有问题。但是,我希望能够从命令行以着色jar的形式运行该项目。我一直在使用“mvn包”为jar着色。当我从命令行运行jar时,我得到一个错误: 线程“main”java.lang.NoClassDefFoundError中出现异常:com/sforce/soap/enterprise/Enterpr

我有一个导入类的Apache Maven Java项目:

com.sforce.soap.enterprise.EnterpriseConnection

从IntelliJ运行项目时,我在执行代码时没有问题。但是,我希望能够从命令行以着色jar的形式运行该项目。我一直在使用“mvn包”为jar着色。当我从命令行运行jar时,我得到一个错误:

线程“main”java.lang.NoClassDefFoundError中出现异常:com/sforce/soap/enterprise/EnterpriseConnection

我的pom包括依赖项:

<dependency>
  <groupId>qa-integration.sfdc</groupId>
  <artifactId>enterprise</artifactId>
  <version>1.0.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/libs/enterprise-1.0.0.jar</systemPath>
</dependency>
<dependency>
  <groupId>qa-integration.sfdc</groupId>
  <artifactId>metadata</artifactId>
  <version>1.0.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/libs/metadata-1.0.0.jar</systemPath>
</dependency>

qa-integration.sfdc
企业
1.0.0
系统
${project.basedir}/libs/enterprise-1.0.0.jar
qa-integration.sfdc
元数据
1.0.0
系统
${project.basedir}/libs/metadata-1.0.0.jar
我的阴影效果如下所示:

      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <filters>
            <filter>
              <artifact>*:*</artifact>
              <excludes>
                <exclude>META-INF/*.SF</exclude>
                <exclude>META-INF/*.DSA</exclude>
                <exclude>META-INF/*.RSA</exclude>
              </excludes>
            </filter>
          </filters>
          <createDependencyReducedPom>false</createDependencyReducedPom>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <mainClass>com.sunrun.integration.sfdc.metadata.Main</mainClass>
            </transformer>
          </transformers>
        </configuration>
      </execution>

包裹
阴凉处
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
假的
com.sunrun.integration.sfdc.metadata.Main

当我列出jar的内容时,我根本看不到salesforce文件

我遇到了这个问题,我的解决方案是将以下代码片段添加到pom.xml中:

<build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>corrigo.Main</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id> <!-- this is used for inheritance merges -->
                            <phase>package</phase> <!-- bind to the packaging phase -->
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--<plugin>-->
                    <!--<groupId>org.apache.maven.plugins</groupId>-->
                    <!--<artifactId>maven-jar-plugin</artifactId>-->
                    <!--<version>2.4</version>-->
                    <!--<configuration>-->
                        <!--<archive>-->
                            <!--<manifest>-->
                                <!--<mainClass>corrigo.Main</mainClass>-->
                            <!--</manifest>-->
                        <!--</archive>-->
                    <!--</configuration>-->
                <!--</plugin>-->
            </plugins>
        </build>


我遇到了这个问题,我的解决方案是将以下代码片段添加到我的pom.xml中:

<build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>corrigo.Main</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id> <!-- this is used for inheritance merges -->
                            <phase>package</phase> <!-- bind to the packaging phase -->
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--<plugin>-->
                    <!--<groupId>org.apache.maven.plugins</groupId>-->
                    <!--<artifactId>maven-jar-plugin</artifactId>-->
                    <!--<version>2.4</version>-->
                    <!--<configuration>-->
                        <!--<archive>-->
                            <!--<manifest>-->
                                <!--<mainClass>corrigo.Main</mainClass>-->
                            <!--</manifest>-->
                        <!--</archive>-->
                    <!--</configuration>-->
                <!--</plugin>-->
            </plugins>
        </build>


检查着色jar是否包含此类。该错误表示依赖项不在类路径上。您是如何构建jar的?@Silver裹尸布否jar不包含该类。@SamOrozco我正在使用“mvn package”构建,请检查着色jar是否包含该类。该错误表示依赖项不在类路径上。您是如何构建jar的?@Silver裹尸布否jar不包含该类。@SamOrozco我正在使用“mvn包”构建