15

重要度の高い順に3つの質問-リンクで十分です。

  1. Mavenプラグインのプロキシやサーバーなどの特定のMaven設定を読み取る必要があります。プラグインからそれらを読み取るにはどうすればよいですか。.m2 / settings.xmlファイルから読み取ることはできますが、もっと簡単な方法があるはずだと思います(すでにそれを行っているAPIもあります)。

  2. 開発者のクックブックから、クラスがあることがわかります

    org.apache.maven.project.MavenProject
    これをプラグインで使用できるようにするために必要な依存関係-これがあればよいと思います。

  3. 自分のプロパティを持つことは可能ですか?

    settings.xml
    たとえば言う

    <users> 
    <user>
    <username> user_name1 </ username>
    <password> encode_password </ password>
    </ user>
    </ users>

    どのように ?

PS:私は初心者です。

アップデート1

Settings.xmlを介してPOMプロパティを挿入した後、カスタムプロパティを作成して読み取ることができました。ただし、貨物と同様の構成にしたい。例えば

    <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>

どうすればこれを達成できますか。私の3番目の問題に対して、正しい方法かどうかわからないような回避策があります。

編集

ありがとうJordan002!複数のプロファイルを持つことができることは知っていますが、それらを使用することを知りませんでした。このようにプロファイルを作成することで、変数の値を設定したり、次のように言ってプラグインに値を挿入したりできます。

@Parameter(alias = "cargo.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に対して定義した構成を取得します。これについては、プロファイルを作成する必要はありません。

4

2 に答える 2

4
  1. ここで説明されているように設定コンポーネントを挿入しますhttp://maven.apache.org/plugin-tools/maven-plugin-tools-annotations/

  2. そのMavenコア org.apache.maven:maven-core:3.0.5

  3. プロパティをネストせずに直接使用します。例http://maven.apache.org/examples/injecting-properties-via-settings.html

于 2013-04-14T04:56:13.890 に答える
1

私は Cargo プラグインにあまり詳しくありませんが、ドキュメントから、他の Maven プラグインと同じように構成できるようです。「Update 1」から変更することは、tomcat6 および tomcat7 プロファイルを作成することです。

<profiles>
    <profile>
        <id>tomcat6_local</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <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>
        </properties>
    </profile>
    <profile>
        <id>tomcat7_local</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <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>
        </properties>
    </profile>
</profiles>

適切なプロファイルを渡すことで、実行時にどの tomcat を開始/停止するかを指定します。

mvn install -P tomcat6_local

お役に立てれば。

于 2013-02-04T15:12:05.667 に答える