按重要性遞減順序排列的三個問題 - 鏈接將會執行。如何從插件中讀取.m2/settings.xml文件中的maven設置
我需要閱讀某些行家設置,如代理,服務器在我的Maven插件。我如何從我的插件中讀取它們。我可以從.m2/settings.xml文件讀取,但我認爲必須有一個更簡單的方法(一些API已經做到了)。
我看到從developers cookbook有一個類
org.apache.maven.project.MavenProject
我需要什麼依賴我可以在我的插件 - 我覺得這將是一件好事。是否有可能有自己的特性在
settings.xml
比方說<users>
<user>
<username>user_name1</username>
<password>encrypted_password</password>
</user>
</users>如何?
PS:我是初學者。
更新1
我能夠創建和以下Injecting POM Properties via Settings.xml閱讀自定義屬性。不過,我希望具有類似cargo所提供的配置。例如。
<servers>
<server>
<id>tomcat7_local</id>
<configuration>
<cargo.hostname>localhost</cargo.hostname>
<cargo.remote.uri>http://localhost:8080/manager/text</cargo.remote.uri>
<cargo.remote.username>my_username</cargo.remote.username>
<cargo.remote.password>my_password</cargo.remote.password>
<cargo.servlet.port>8080</cargo.servlet.port>
</configuration>
</server>
<server>
<id>tomcat6_local</id>
<configuration>
<cargo.hostname>localhost</cargo.hostname>
<cargo.remote.uri>http://localhost:8080/manager</cargo.remote.uri>
<cargo.remote.username>my_username</cargo.remote.username>
<cargo.remote.password>my_password</cargo.remote.password>
<cargo.servlet.port>8080</cargo.servlet.port>
</configuration>
</server>
</servers>
我該如何做到這一點。對我的第三個問題有一種解決方法,不確定它是否正確。
編輯
感謝Jordan002!我知道我可以有多個配置文件,但我不知道要使用它們。這樣,通過使輪廓來設置我的變量的值,或者更確切地說,就像這樣,
@Parameter(alias = "cargo.hostname") private String hostname;注入在我的插件的價值,但我看到,貨物插件它所需要的是同樣的定義如下圖所示
<servers>
<server>
<id>someId</id>
<configuration>
<!-- Configurations are placed here -->
</configuration>
</servers>
,或者可能不如此的相似,因爲沒有配置這裏
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>My_proxy_host</host>
<port>My_proxy_port</port>
</proxy>
</proxies>
是在那裏我可以把那Maven使用代理信息。現在,我不想在配置文件中重新定義它,我不想解析此文件以獲取信息。
此外,我想做一些像貨物一樣的事情。它讓我寫內部服務器和項目的POM所有的配置我只需要做以下
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.server.settings>tomcat7_local</cargo.server.settings>
</properties>
</configuration>
<deployer>
<type>remote</type>
</deployer>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>${project.artifactId}</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
和貨物拾起,我爲定義tomcat7_local配置(S),沒必要寫一個簡介爲了這。