我开始将我的项目转换为Maven,因为我需要使用一个仅在Maven上以二进制形式分发的库,但是在我的头撞在墙上太久之后,我决定停止伤害自己,只用Ant。我想让maven把jar和它的所有可传递依赖项下载到我选择的目录中,这样我就可以像往常一样把它们签入SCM再次享受并成为一名幸福的开发人员。有什么办法能轻松做到吗?
cnwbcb6i1#
maven dependency plugin有可能解决您的问题。如果您有一个pom,并且指定了所有的项目依赖项,那么您所需要做的就是运行
pom
mvn dependency:copy-dependencies
您将发现target/dependencies文件夹中充满了所有依赖项,包括可传递的。从下面添加Gustavo的回答:要下载依赖项 * 源 *,可以使用
target/dependencies
mvn dependency:copy-dependencies -Dclassifier=sources
(via Apache Maven依赖项插件文档)。
sqserrrh2#
我终于想出了如何使用Maven。从Eclipse中创建一个新的Maven项目。下载Maven,解压缩归档文件,将/bin文件夹添加到path。通过运行mvn -v从命令行验证安装(将打印版本和Java安装路径)更改为项目根文件夹(pom.xml所在的位置)并运行:mvn dependency:copy-dependencies将所有jar文件下载到/target/dependency。要设置另一个输出目录:
/bin
mvn -v
pom.xml
/target/dependency
mvn dependency:copy-dependencies -DoutputDirectory="c:\temp"
现在,可以通过修改pom.xml文件来为所有依赖项下载重用这个Maven项目通过构建路径-〉配置构建路径-〉库-〉添加JAR将jar添加到Java项目。
pkbketx93#
根据@Raghuram的回答,我找到了一个关于Copying project dependencies的教程,只是:1.打开您的项目pom.xml文件,并找到以下内容:
<project> [...] <build> <plugins> ... </plugins> </build> [...] </project>
1.将<plugins> ... </plugins>替换为:
<plugins> ... </plugins>
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> </plugins>
1.并在命令行mvn dependency:copy-dependencies中调用maven完成后,它将在pom.xml所在的当前目录上的所有jar依赖项中创建文件夹target/dependency。
jar
target/dependency
ssgvzors4#
我找到了下一条命令mvn dependency:copy-dependencies -Dclassifier=sources此处为maven.apache.org
1yjd4xko5#
请检查${MAVEN_HOME}/conf目录中是否有一些配置文件,如settings.xml。这些文件覆盖.m2文件夹中的设置,因此,.m2中的存储库文件夹可能不可见或被丢弃。
${MAVEN_HOME}/conf
settings.xml
.m2
ltqd579y6#
我的简单脚本基于user基于Raghuram。
getmvndep.sh #!/bin/bash groupId=$1 artifactId=$2 version=$3 echo "<project>" > pom.xml echo " <modelVersion>4.0.0</modelVersion>" >> pom.xml echo " <groupId>com.temp.temp</groupId>" >> pom.xml echo " <artifactId>temp</artifactId>" >> pom.xml echo " <packaging>jar</packaging>" >> pom.xml echo " <version>0.0.0</version>" >> pom.xml echo " <dependencies>" >> pom.xml echo " <dependency>" >> pom.xml echo " <groupId>${groupId}</groupId>" >> pom.xml echo " <artifactId>${artifactId}</artifactId>" >> pom.xml echo " <version>${version}</version>" >> pom.xml echo " </dependency>" >> pom.xml echo " </dependencies>" >> pom.xml echo " <build>" >> pom.xml echo " <plugins>" >> pom.xml echo " </plugins>" >> pom.xml echo " </build>" >> pom.xml echo "</project>" >> pom.xml mvn dependency:copy-dependencies -DoutputDirectory="./libs/${version}" rm pom.xml
avwztpqn7#
基于Patrik Polak的答案,基于user,基于Raghuram,这里是针对windows用户的相同脚本。
CD /D %~dp0 IF "%1" EQU "" goto:EOF IF "%2" EQU "" goto:EOF IF "%3" EQU "" goto:EOF SET groupId=%1 SET artifactId=%2 SET version=%3 echo ^<project^> > pom.xml echo ^<modelVersion^>4.0.0^</modelVersion^> >> pom.xml echo ^<groupId^>com.temp.temp^</groupId^> >> pom.xml echo ^<artifactId^>temp^</artifactId^> >> pom.xml echo ^<packaging^>jar^</packaging^> >> pom.xml echo ^<version^>0.0.0^</version^> >> pom.xml echo ^<dependencies^> >> pom.xml echo ^<dependency^> >> pom.xml echo ^<groupId^>%groupId%^</groupId^> >> pom.xml echo ^<artifactId^>%artifactId%^</artifactId^> >> pom.xml echo ^<version^>%version%^</version^> >> pom.xml echo ^</dependency^> >> pom.xml echo ^</dependencies^> >> pom.xml echo ^<build^> >> pom.xml echo ^<plugins^> >> pom.xml echo ^</plugins^> >> pom.xml echo ^</build^> >> pom.xml echo ^</project^> >> pom.xml mkdir .\%groupId%-%artifactId%-%version%-jars call mvn dependency:copy-dependencies -DoutputDirectory=.\%groupId%-%artifactId%-%version%-jars del pom.xml pause
7条答案
按热度按时间cnwbcb6i1#
maven dependency plugin有可能解决您的问题。
如果您有一个
pom
,并且指定了所有的项目依赖项,那么您所需要做的就是运行您将发现
target/dependencies
文件夹中充满了所有依赖项,包括可传递的。从下面添加Gustavo的回答:要下载依赖项 * 源 *,可以使用
(via Apache Maven依赖项插件文档)。
sqserrrh2#
我终于想出了如何使用Maven。从Eclipse中创建一个新的Maven项目。
下载Maven,解压缩归档文件,将
/bin
文件夹添加到path。通过运行
mvn -v
从命令行验证安装(将打印版本和Java安装路径)更改为项目根文件夹(
pom.xml
所在的位置)并运行:mvn dependency:copy-dependencies
将所有jar文件下载到
/target/dependency
。要设置另一个输出目录:
现在,可以通过修改pom.xml文件来为所有依赖项下载重用这个Maven项目
通过构建路径-〉配置构建路径-〉库-〉添加JAR将jar添加到Java项目。
pkbketx93#
根据@Raghuram的回答,我找到了一个关于Copying project dependencies的教程,只是:
1.打开您的项目
pom.xml
文件,并找到以下内容:1.将
<plugins> ... </plugins>
替换为:1.并在命令行
mvn dependency:copy-dependencies
中调用maven完成后,它将在
pom.xml
所在的当前目录上的所有jar
依赖项中创建文件夹target/dependency
。ssgvzors4#
我找到了下一条命令
mvn dependency:copy-dependencies -Dclassifier=sources
此处为maven.apache.org
1yjd4xko5#
请检查
${MAVEN_HOME}/conf
目录中是否有一些配置文件,如settings.xml
。这些文件覆盖.m2
文件夹中的设置,因此,.m2
中的存储库文件夹可能不可见或被丢弃。ltqd579y6#
我的简单脚本基于user基于Raghuram。
avwztpqn7#
基于Patrik Polak的答案,基于user,基于Raghuram,这里是针对windows用户的相同脚本。