2016-10-26 11 views
0

maven의 응답을 얻으려면. 다운로드 된 commons-cli. 컴파일되지 않은 Apache cli 도우미입니다.다른 방법으로 maven을 사용하여 원형을 저장하는 중

새로운 maven 프로젝트를 생성하고 컴파일되지 않은 모든 코드를 Yanked했습니다. 과 같이 :

mvn archetype:generate -DarchetypeArtifactId=maven-archetype- 
    quickstart -DinteractiveMode=false 

이 생성 :

이제
commons-cli/ 
    src/ 
    main/ 
     java/ 
     cli/ 
      *.java <- all the java code. 

실행 :

mvn archetype:create-from-project 

이 (가) 작성이의 pom.xml에서

 generated-sources/ 
     archetype/ 
      src/ 
      main/ 
      test/ 
      target/ 
      pom.xml 

:

이제
<groupId>com.company.app</groupId> 
    <artifactId>test-archetype</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>maven-archetype</packaging> 

    <name>test-archetype</name> 

:

cd target/generated-sources/archetype/ 

mvn clean install 

지금 내 .m2/폴더에있는 항아리를 하바와 나는 실행 종속으로 사용할 수 없습니다. 코드가 컴파일되지 않습니다.

내 quistion은 다음과 같습니다

어떻게 그냥 사용 가능한 코드 (을 .class)를 내 로컬의 repo에 추가 컴파일와의 .jar을 가질 수있다? 그리고 자바 코드없이 사용하십시오.

내 저장소에 자바 코드를 추가하려면 어떻게해야합니까? maven-archetype-quickstart 처럼요?

감사합니다.

답변

0

귀하의 질문은 어떻게 든 혼란,하지만 난 최선 내가 할 수있는 그것을 대답하려고 :

전형 프로젝트에 대한 청사진 : 당신은 그들에게 새 프로젝트를 만드는 데 사용하는,하지만 당신은 내 많은 소스 코드를 넣지 마십시오 그들.

mvn clean install을 호출하여 컴파일 된 병을 만듭니다. 컴파일 된 클래스가있는 jar를 로컬 저장소에 씁니다. 이러한 jar를 빌드하면 "sources"및 "javadoc"에 대한 부수 아티팩트를 추가 할 수 있습니다. 이것도 로컬 저장소에 저장됩니다.

+0

답장을 보내 주셔서 감사합니다. 실제로 나는 2 개의 질문을하고 있었다. 1. 컴파일되지 않은 Java 코드가있는 blueprinst를 어떻게 저장할 수 있습니까? 마찬가지로 maven-archetype-quickstart입니다. 따라서 항아리가없고 * .class 파일도 없습니다. 그냥 청사진. 2. 컴파일 된 * .class 파일을 항아리 안에 저장할 수있는 방법. 그냥 내가 의존성으로 사용할 수 있도록. 1 & 2를 수행하기 위해 뜨거운 예를 들어 주시겠습니까? 미리 감사드립니다. –

+0

1. https://maven.apache.org/guides/mini/guide-creating-archetypes.html을보십시오. 그러나 당신이 아키 타입에 소스 코드를 저장하고 싶어한다는 것이 이상하게 보입니다. 이것은 불필요한 코드 중복과 매우 흡사합니다. 2. pom 디렉토리에 mvn clean install을 호출하면됩니다. –

+0

메이븐 저장소에 소스 코드가 없습니다? maven-archetype-quickstart -DinteractiveMode = false ? maven-archetype-quickstart? 이것은 "스타터"를 저장하는 편리한 방법입니다. 그렇지 않니? 나는 이것이 이것이 생각이었다고 생각했다. 또한 의존성 관리. –

0

알 수 있습니다.

내가 생각했던 것보다 쉬웠다. 위의 예 대신. 나는로 시작했다

파일에 코드를 넣으십시오.

그런 다음 청소하기 등

mvn clean install 

을 그리고 패키지로

src/main/resources/META-INF/maven/archetype.xml 

컴파일 된 코드 수정 : 컴파일

<?xml version="1.0" encoding="UTF-8"?> 
<archetype-descriptor xsi:schemaLocation="http://maven.apache.org 
/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 
http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" 
name="commons-cli" 
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin 
/archetype-descriptor/1.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<fileSets> 
<fileSet filtered="true" packaged="true" encoding="UTF-8"> 
    <directory>org/apache/commons/cli</directory> 
    <includes> 
    <include>**/*.class</include> 
    <!-- 
<include>**/*.html</include> 
--> 
    </includes> 
</fileSet> 
<!-- 
<fileSet filtered="true" packaged="true" encoding="UTF-8"> 
    <directory>src/test/java</directory> 
    <includes> 
    <include>**/*.java</include> 
    </includes> 
</fileSet> 
--> 

단지 코드 :

<archetype xmlns="http://maven.apache.org/plugins/maven-archetype- 
plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- 
instance" 
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype- 
plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype- 
1.0.0.xsd"> 
    <id>quickstart</id> 
    <sources> 
    <source>src/main/java/*.java</source> 
    </sources> 
    <testSources> 
    <source>src/test/java/*.java</source> 
    </testSources> 
</archetype> 

코드 및 포장 :

<?xml version="1.0" encoding="UTF-8"?> 
<archetype-descriptor xsi:schemaLocation="http://maven.apache.org 
/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 
http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" 
name="commons-cli" 
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin 
/archetype-descriptor/1.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<fileSets> 
<fileSet filtered="true" packaged="true" encoding="UTF-8"> 
    <directory>src/main/java</directory> 
    <includes> 
    <include>**/*.java</include> 
    <include>**/*.html</include> 
    </includes> 
</fileSet> 
<fileSet filtered="true" packaged="true" encoding="UTF-8"> 
    <directory>src/test/java</directory> 
    <includes> 
    <include>**/*.java</include> 
    </includes> 
</fileSet> 
그것은 archetype.xml 단지이 구성의

... 나는 아직 그것을 테스트하지 않았습니다 . 그러나 이것은 트릭을해야합니다. 나는 희망한다. :) 감사의 JF Meier.