在maven系统中部署的第三方罐子在哪里?

时间:2013-10-15 22:21:12

标签: java maven

Maven的新手......

我已经成功为我的应用创建了一个jar。我想从这个jar“java -jar foo.jar MyClass”运行应用程序,但我不知道从哪里获取(并打包)所有依赖项。 maven有目标吗?如果没有,我会使用像proguard这样的东西吗?然后我如何将其纳入maven目标?

提前致谢

3 个答案:

答案 0 :(得分:0)

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

如果您的pom.xml拥有所需的一切,那么mvn clean install会处理所有细节。

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

答案 1 :(得分:0)

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

关于从命令行运行java的一些棘手的事情是让类路径正确。但是,你可以让Maven为你执行它:

How do I execute a program using Maven?

答案 2 :(得分:0)

这不是你的queston的答案,但要创建一个“胖”jar,包含所有的依赖项,试试maven complier插件:

<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>