繁体   English   中英

Maven Assembly:Unabe运行胖罐

[英]Maven Assembly: Unabe to run fat jar

我已经使用maven程序集插件创建了一个胖子罐。 以下是隐藏了一些敏感细节的pom文件:-

<modelVersion>4.0.0</modelVersion>
<groupId>labs.rule</groupId>
<artifactId>labs-engine</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Labs Engine</name>
<description>Rule engines @ XXX</description>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <!-- get all project dependencies -->
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <!-- MainClass in mainfest make a executable jar -->
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>main.java.labs.RuleEngine</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <!-- bind to the packaging phase -->
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<!-- distributionManagement entry is for enabling upload to bidstalk maven
                    repos -->
<repositories>
    <repository>
        <id>My-maven-repository</id>
        <name>My-maven-repository-releases</name>
        <url>http://X.Y.Z.W:ZZZ/artifactory/simple/My</url>
    </repository>
    <repository>
        <id>sonatype-forge</id>
        <url>https://repository.sonatype.org/content/groups/forge/</url>
    </repository>
</repositories>
<distributionManagement>
    <snapshotRepository>
        <id>My-maven-repository</id>
        <name>My-maven-repository-snapshots</name>
        <url>http://X.Y.Z.W:ZZZ/artifactory/simple/My</url>
    </snapshotRepository>
</distributionManagement>
<dependencies>
    <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>commons-net</groupId>
        <artifactId>commons-net</artifactId>
        <version>3.3</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.10</version>
    </dependency>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
    </dependency>
    <dependency>
        <groupId>com.aerospike</groupId>
        <artifactId>aerospike-client</artifactId>
        <version>3.1.9</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-redshift</artifactId>
        <version>1.11.31</version>
    </dependency>
    <dependency>
        <groupId>com.applift.commonslib</groupId>
        <artifactId>alertslib</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.amazon</groupId>
        <artifactId>redshift.jdbc41</artifactId>
        <version>1.1.13.1013</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>
</dependencies>
</project>

我能够从eclipse运行代码,但是我需要部署一个胖jar,该胖jar是我在打包阶段在maven中创建的。

但是,当我尝试使用以下命令运行jar时:

java -jar target/labs-engine-0.0.1-SNAPSHOT-jar-with-dependencies.jar

它给出了以下例外:

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://X-Y-Z.com:3306/labs_staging

现在创建肥罐时我缺少什么? 注意:-

  1. mysql-connector包含在pom.xml中。
  2. 我能够在Eclipse中运行
  3. com.mysql.jdbc软件包存在于创建的胖罐中。

编辑: mvn clean install输出

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Labs Engine 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ labs-engine ---
[INFO] Deleting /Users/mangat/Documents/workspace/labs-rule-engine/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ labs-engine ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/mangat/Documents/workspace/labs-rule-engine/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ labs-engine ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 8 source files to /Users/mangat/Documents/workspace/labs-rule-engine/target/classes
[WARNING] /Users/mangat/Documents/workspace/labs-rule-engine/src/main/java/labs/RuleEngineAerospikeConnection.java: /Users/mangat/Documents/workspace/labs-rule-engine/src/main/java/labs/RuleEngineAerospikeConnection.java uses unchecked or unsafe operations.
[WARNING] /Users/mangat/Documents/workspace/labs-rule-engine/src/main/java/labs/RuleEngineAerospikeConnection.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ labs-engine ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/mangat/Documents/workspace/labs-rule-engine/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ labs-engine ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ labs-engine ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ labs-engine ---
[INFO] Building jar: /Users/mangat/Documents/workspace/labs-rule-engine/target/labs-engine-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- maven-assembly-plugin:2.4.1:single (make-assembly) @ labs-engine ---
[INFO] Building jar: /Users/mangat/Documents/workspace/labs-rule-engine/target/labs-engine-0.0.1-SNAPSHOT-jar-with-dependencies.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ labs-engine ---
[INFO] Installing /Users/mangat/Documents/workspace/labs-rule-engine/target/labs-engine-0.0.1-SNAPSHOT.jar to /Users/mangat/.m2/repository/labs/rule/labs-engine/0.0.1-SNAPSHOT/labs-engine-0.0.1-SNAPSHOT.jar
[INFO] Installing /Users/mangat/Documents/workspace/labs-rule-engine/pom.xml to /Users/mangat/.m2/repository/labs/rule/labs-engine/0.0.1-SNAPSHOT/labs-engine-0.0.1-SNAPSHOT.pom
[INFO] Installing /Users/mangat/Documents/workspace/labs-rule-engine/target/labs-engine-0.0.1-SNAPSHOT-jar-with-dependencies.jar to /Users/mangat/.m2/repository/labs/rule/labs-engine/0.0.1-SNAPSHOT/labs-engine-0.0.1-SNAPSHOT-jar-with-dependencies.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.707 s
[INFO] Finished at: 2016-09-12T20:13:32+05:30
[INFO] Final Memory: 43M/379M
[INFO] ------------------------------------------------------------------------

尝试下一个修复程序。

将具有以下内容的内容添加到您的项目资源META-INF/services/java.sql.Driver文件中:

com.mysql.jdbc.Driver
com.mysql.fabric.jdbc.FabricMySQLDriver

生成后,请确保*-jar-with-dependencies.jar文件(它是纯zip文件,将其重命名为内部)包含正确的内容。

这不是最佳解决方案,但如果有帮助,我们可以找到更好的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM