모든 라이센스를 관리하기 위해 라이센스 플러그인을 설정하려고하는 다중 모듈 project이 있습니다. 다음은 프로젝트 설정입니다.라이센스 플러그인이 포함 된 Maven 다중 모듈 프로젝트
─── transfuse-project
├── examples
│ ├── helloAndroid
│ │ ├── pom.xml
│ │ ├── ...
│ ├── integrationTest
│ │ ├── pom.xml
│ │ ├── ...
│ ├── pom.xml
│ └── ...
├── transfuse
│ ├── pom.xml
│ ├── ...
├── transfuse-api
│ ├── pom.xml
│ ├── ...
├── NOTICE
└── pom.xml
각 pom.xml은 transfuse-project pom.xml에서 상속합니다. 내가 관련 파일에주의 사항을 적용하려면 라이센스 플러그인을 설정 한 pom.xml 파일이 프로젝트에 : 나는 루트 (수혈 프로젝트)의에서 직접 구축 할 경우
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<version>1.9.0</version>
<configuration>
<header>NOTICE</header>
<includes>
<include>**/*.java</include>
<include>**/*.xml</include>
</includes>
<excludes>
<exclude>**/.*/**</exclude>
<exclude>target/**</exclude>
<exclude>**/AndroidManifest.xml</exclude>
</excludes>
<properties>
<year>2013</year>
<name>John Ericksen</name>
</properties>
<useDefaultExcludes>true</useDefaultExcludes>
<strictCheck>true</strictCheck>
</configuration>
<executions>
<execution>
<id>check-headers</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
이 구성은 작동합니다. 문제는 integrationTest 예제 나 API를 직접 빌드 할 때 발생합니다.
[ERROR] Failed to execute goal com.mycila.maven-license-plugin:maven-license-plugin:1.9.0:check (check-headers) on project transfuse-api: Some files do not have the expected license header -> [Help 1]
그리고 더 나쁜 것, 또 다른 종속의주의 사항 파일을 찾습니다 Maven은 내가 프로젝트 루트에서 제공되는주의 사항 파일을 찾을 수 없습니다. 하위 모듈에 mvn license:format
을 실행하면 모든 모듈의 헤더가 종속성의 NOTICE 파일로 바뀝니다.
각 하위 모듈 내에이 문제를 수정하고 자체 라이센스 플러그인을 사용하여 각 하위 모듈 pom을 구성하는 NOTICE 파일을 추가 할 수 있다고 생각하지만 가능한 경우 중복을 피하고 싶습니다. 프로젝트 구성에서 작동 할 수있는 구성이나 설정이 있습니까?
<header>${main.basedir}/NOTICE</header>
세 번째 옵션에서 속성을 설정한다 : 문제가 해결되지 않으면
아, 나뿐만 아니라 것을 시도했다. 루트에서 빌드하면 작동하지만 하위 모듈을 빌드하는 데 실패합니다. –
편집 내 답변 ... 작동하지만 여분의 상용구 – asgoth
빙고, 두 번째 옵션이 효과가 있어요. 도와 주셔서 감사합니다. –