maven不会在传递依赖的分类器上解析profile的属性

时间:2012-07-27 09:10:56

标签: maven maven-3

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

根项目
--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和分类器的人......

0 个答案:

没有答案