원형에서 프로젝트를 생성할 때 속성 교체를 어떻게 억제합니까?

StackOverflow https://stackoverflow.com/questions/1878742

  •  18-09-2019
  •  | 
  •  

문제

간단한 프로젝트를 위한 아키타입을 만들려고 합니다. 이 프로젝트에는 아키타입에 리소스로 포함하고 싶은 일부 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에 있습니다.어떤 아이디어가 있나요?

도움이 되었습니까?

해결책

귀하의 문제가 정확히 무엇인지는 잘 모르겠지만(귀하의 인증서는 xml 파일입니까??) 제 추측으로는 이는 원형의 바이너리가 아닌 콘텐츠 대부분이 생성 중에 속도에 의해 처리된다는 사실과 관련이 있는 것 같습니다(참조 ARCHETYPE-90 이 문제에 대해).

해결 방법은 다음을 구성하는 것입니다. 프로젝트에서 생성 mojo는 다음을 사용하여 기본적으로 파일을 필터링하지 않도록 합니다.

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

필터링할 파일의 확장자를 설정하며 기본값은 다음과 같습니다. java, xml, txt, vm, groovy, jsp, gsp, vm 그리고 properties.그래서 제외 xml 원하지 않으면 이 목록에서 삭제하세요 xml 필터링됩니다.

또 다른 옵션은 원형에 대한 사용자 정의 메타데이터를 지정하는 것입니다. 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>

보다 이 페이지 원형 메타데이터에 대한 자세한 내용은

다른 팁

Archetype-Resources/Pom.xml에서 $ {basedir}를 사용하려는 비슷한 문제가 있었지만 아키타 타입이 프로젝트를 만들기 위해 실행되어 잘못된 디렉토리를 가리킬 때 교체되었습니다.

수정은 간단합니다. 대신 $ {basedir}를 사용하십시오. 이것은 $ 표시를 피하고 아키 타입이 실행될 때 Maven이 교체하지 못하게합니다. 그런 다음 생성 된 pom.xml 파일에는 아키 타입이 실행 된 디렉토리 대신 $ {basedir}가 포함됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top