我正在尝试在看起来像的多模块项目上使用分类器
根项目
--ejb
--jar
--servlet
--ear
ejb 项目依赖于 jar 项目 war 项目依赖于 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 上执行目标:无法解析 >> 项目 root.project.servlets:servlet:war:1.0 的依赖项:无法传输工件 root.project.projects:logging:jar:${ env Classifier}:1.0 from/to nexus ( http://.../nexus/content/groups/public ): > IllegalArgumentException: IllegalArgumentException: IllegalArgumentException: Illegal character in path at index 102: .../nexus> /content/groups/public /root/project/projects/logging/1.0/logging-1.0-${envClassifier}.jar -> [Help 1]
[ERROR]
[ERROR] 要查看错误的完整堆栈跟踪,请使用 - e 开关。
[错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。
[错误] ...
我尝试在我的 servlet 项目上执行以下命令
$ mvn -P 开发帮助:有效-pom
我看到分类器很好解析。但它不适用于传递依赖。
唯一的解决方法是在 maven 启动时将属性注入为-DenvClassifier=dev
最后,我在 jira 上看到了一些问题但没有解决我该如何解决这个问题?我想我不是地球上唯一一个在多模块项目中使用 maven 和分类器的人......