问题:我的软件使用每个开发人员(和用户)安装在不同位置的库。
以下内容适用于pom.xml
:
<project ...>
...
<dependencies>
<dependency>
<groupId>myGroup</groupId>
<artifactId>myName</artifactId>
<version>1.2.3</version>
<scope>system</scope>
<systemPath>C:\...\....jar</systemPath>
</dependency>
</dependencies>
</project>
但是当我将其检查为源代码控制时,每个需要更改它的开发人员都必须更改pom.xml
,因此必须在之后的每次提交时忽略它,或者如果他必须更改其他内容则部分提交在pom.xml
中,例如添加另一个依赖项。
使用属性无效,只是将问题移到pom.xml
内的其他位置。
使用属性并从外部文件(properties-maven-plugin)读取它似乎不起作用,因为插件在的依赖性检查之后被称为。 Eclipse:Dynamically adding a Maven dependency from a property
使用环境变量${env.MY_VARIABLE}
似乎也不起作用:[ERROR] 'dependencies.dependency.systemPath' for myGroup:myName:jar must specify an absolute path but is ${env.MY_VARIABLE} @line 123, column 45
关于如何解决的任何想法?
答案 0 :(得分:0)
我会为我的罐子使用repoistory。像nexus或artifactory之类的东西。
答案 1 :(得分:0)
此选项适用于我:
3. Using environment variables ${env.MY_VARIABLE} seems not to work either: [ERROR] 'dependencies.dependency.systemPath' for myGroup:myName:jar must specify an absolute path but is ${env.MY_VARIABLE} @line 123, column 45
您必须将jar名称包含在路径中,例如${env.MY_VARIABLE/my_jar.jar}
。
还要确保您的环境中存在MY_VARIABLE
。
最后执行mvn clean
和mvn compile
命令