2012-03-24 190 views

回答

10

用途:${project.file.parentFile.name}

如何去解決它:

${project}實際上解析爲MavenProject對象。從那裏,你可以使用bean屬性來獲得你需要的值。在這種情況下:


(編輯:COMM後ent)

對工件ID使用屬性不是一個好主意。 ${project.file.parentFile.name}屬性在作爲artifactId的一部分使用時無法解析,但是某些屬性可以工作(project.groupId對於artifactId似乎工作正常)。

但是,這不被推薦。

[WARNING] Some problems were encountered while building the effective model for <your groupID>:<your artifactID>:jar:1.0-SNAPSHOT 
[WARNING] 'artifactId' contains an expression but should be a constant. @ <your groupID>:<your artifact ID>:1.0-SNAPSHOT, <basedir>/pom.xml, line 5, column 14 
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. 
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 
+0

嗨, 出於某種原因,這並不作爲工作:事實上,如果你使用任何屬性的神器ID而不是常量,你會當你建立你的項目得到一個警告artifactId的。我想要做的是將我的artifactId設置爲pom.xml文件所在文件夾的名稱。 這很有趣,因爲將$ {project.basedir}替換爲包含pom的文件夾的完整路徑。 xml,但$ {project.file}不會被替換,並且從字面上看被視爲artifactId。例如: $ {} project.basedir結果在: 的artifactId = /路徑/到/項目/ 鑑於: $ {} project.file結果在和錯誤,因爲artifactId的設置到: artifactId = $ {project.file} – Naijaba 2012-03-24 15:48:21

+0

@Naijaba確實,在'artifactId'上試過了,但是失敗了,但是當我在插件的配置選項中使用它時就起作用了。雖然在artifactId中使用這種模式可能不是一個好主意,但如果其他人將您的項目簽出到不同的目錄名稱,artifactId最終會有所不同。爲artifactId粘貼純字符串通常是個好主意。 – prunge 2012-03-25 05:05:52

+0

超級!感謝那。我一直試圖找出一種基於我簽出的目錄命名同一項目的多個不同版本的好方法,以便我可以將它們全部加載到一個Eclipse工作區中。原來這個工作很完美:$ {project.file.parentFile.parentFile.name}。謝謝 ! – Nicholas 2012-06-01 13:54:06

相關問題