我正在尝试在多模块项目中使用分类器,看起来像
根项目
--ejb
--jar
--servlet
- 耳机
ejb项目取决于jar项目 战争项目取决于ejb项目,传递方式取决于jar项目
不幸的是,在我的servlet项目中,jar项目的分类器永远不会被解析
我还定义了个人资料
<profile>
<id>dev</id>
<properties>
<maven.deployment.suffix>dev</maven.deployment.suffix>
<envClassifier>dev</envClassifier>
<exploded>true</exploded>
...
</properties>
</profile>
当我尝试使用此配置文件打包项目并将工件分类时,我总是遇到以下错误:
mvn -P dev clean install
...
[错误]无法在项目servlet上执行目标:无法解析&gt;的依赖关系&GT; project root.project.servlets:servlet:war:1.0:无法传输工件root.project.projects:logging:jar:$ {env 分类器}:1.0来自/到nexus(http://.../nexus/content/groups/public):&gt; IllegalArgumentException:索引102处路径中的非法字符:... / nexus&gt; /content/groups/public/root/project/projects/logging/1.0/logging-1.0-${envClassifier}.jar - &gt; [帮助1]
[ERROR]
[错误]要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven [ERROR]使用-X开关重新运行Maven以启用完整的调试日志记录 [错误] ......
我uploaded a sample to bitbucket
我尝试在我的servlet项目上执行以下命令
$ mvn -P dev help:effective-pom
我看到分类器得到了很好的解决。但它不适用于传递依赖。
唯一的解决方法是将maven启动时的属性注入-DenvClassifier=dev
最后,我看到few issues on jira但未解决 我怎么解决这个问题 ?我想我不是世界上唯一一个在多模块项目上使用maven和分类器的人......