5

我正在尝试在看起来像的多模块项目上使用分类器

根项目
--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 以启用完整的调试日志记录。
[错误] ...

将样本上传到 bitbucket

我尝试在我的 servlet 项目上执行以下命令

$ mvn -P 开发帮助:有效-pom

我看到分类器很好解析。但它不适用于传递依赖。

唯一的解决方法是在 maven 启动时将属性注入为-DenvClassifier=dev

最后,我在 jira 上看到了一些问题但没有解决我该如何解决这个问题?我想我不是地球上唯一一个在多模块项目中使用 maven 和分类器的人......

4

0 回答 0