3

単純なプロジェクトのアーキタイプを作成しようとしています。このプロジェクトには、アーキタイプのリソースとして含めたいいくつかの SSL 証明書が含まれているため、プロジェクトが作成されると、それらの証明書はプロジェクトの一部になります。私の問題は、原型を使用してプロジェクトを作成するときに、maven がそれらの証明書のプロパティを置き換えようとしていることです。プロパティの置換を行わないようにmavenに指示する方法はありますか? 私はすでに次のことを試しました:

    <resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    <includes>
      <include>**/*.xml</include>
    </includes>
  </resource>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>false</filtering>
    <excludes>
      <exclude>**/*.xml</exclude>
    </excludes>
  </resource>

私のプロトタイプPOM.xmlで。何か案は?

4

2 に答える 2

6

archetype-resources/pom.xml で ${basedir} を使用しようとして同様の問題が発生しましたが、プロジェクトを作成するためにアーキタイプが実行されたときに置き換えられたため、間違ったディレクトリを指していました。

修正は簡単です。代わりに \${basedir} を使用してください。これにより $ 記号がエスケープされ、アーキタイプの実行時に Maven が $ 記号を置き換えるのを防ぎます。次に、生成された pom.xml ファイルには、アーキタイプが実行されたディレクトリではなく ${basedir} が含まれます。

于 2014-06-01T02:10:50.280 に答える
2

あなたの問題が正確に何であるかはわかりませんが(証明書のxmlファイルですか??)、アーキタイプの非バイナリコンテンツのほとんどが作成中に速度によって処理されるという事実に関連していると思います(ARCHETYPE-90を参照)この問題について)。

回避策は、 Create -from-project mojo を構成して、デフォルトでファイルがフィルター処理されないようにすることです。

-Darchetype.filteredExtentions=ext1,ext2,...

フィルタリングされるファイルの拡張子を設定します。デフォルト値javaxmlは、、、、、、、、および. フィルタリングされたくない場合は、このリストから除外してください。txtvmgroovyjspgspvmpropertiesxmlxml

別のオプションは、アーキタイプのカスタム メタデータを指定することですsrc/main/resources/META-INF/maven/archetype-metadata.xml

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="myarchetype">
  <fileSets>
    <fileSet filtered="false" encoding="UTF-8">
      <directory>src/foobar</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
    </fileSet>
  </fileSets>
</archetype-descriptor>

アーキタイプ メタデータの詳細については、このページを参照してください。

于 2009-12-10T12:35:43.447 に答える