0

刚接触马文...

我已经成功地为我的应用程序创建了一个 jar。我想从这个 jar“java -jar foo.jar MyClass”运行应用程序,但我不知道从哪里获取(和打包)所有依赖项。maven 有这样做的目标吗?如果没有,我是否使用类似 proguard 的东西?然后我如何将它融入到 Maven 目标中?

提前致谢

4

3 回答 3

0

这不完全是您问题的答案,但要创建一个“胖”jar,将所有依赖项打包,请尝试使用 maven 编译器插件:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.stackoverflow.example.MainClass</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>
    </plugins>
</build>
于 2013-10-15T23:19:51.857 回答
0

Maven 将所有依赖项放在您的~/.m2文件夹中。(如果您使用的是 Maven 2)

只要您pom.xml拥有所需的一切,mvn clean install就可以处理所有细节。

请记住,您可以mvn dependency:tree在项目中执行 a 查看所有依赖项:p

于 2013-10-15T22:25:42.303 回答
0

Maven 将递归下载所有依赖项并将它们放入本地存储库。

从命令行运行 java 的棘手问题之一是正确设置类路径。但是,您可以让 Maven 为您执行它:

如何使用 Maven 执行程序?

于 2013-10-15T22:30:16.857 回答