2014-03-28 2 views
0

기존의 maven 프로젝트에서 모듈을 분리하려고합니다. 그래서 모든 mybaties 인터페이스와 설정 파일을 가지고있는 핵심 부분과 모듈을 만들었습니다. maven 프로젝트를 멀티 모듈로 변환

그래서 내가

로 내 주요 pom.xml 파일을 생성
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.mycom</groupId> 
<artifactId>app</artifactId> 
<version>1.0-SNAPSHOT</version> 
<properties> 
    <spring.version>3.2.0.RELEASE</spring.version> 
</properties> 
<packaging>pom</packaging> 
<name>app</name> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<modules> 
    <module>core</module> 
    <module>app-mybatis</module> 
</modules> 

내 핵심의 pom.xml은

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
    <parent> 
    <artifactId>app</artifactId> 
    <groupId>com.mycom</groupId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 
<groupId>com.mycom</groupId> 
<artifactId>core</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 
<name>core</name> 
<description>my app</description> 

<properties> 
    <spring.version>3.1.1.RELEASE</spring.version> 
</properties> 


<dependencies> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>${spring.version}</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-support</artifactId> 
     <version>2.0.8</version> 
    </dependency> 


    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 


    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.2</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-asl</artifactId> 
     <version>1.9.13</version> 
    </dependency> 

    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.13</version> 
    </dependency> 
    <dependency> 
     <groupId>rome</groupId> 
     <artifactId>rome</artifactId> 
     <version>1.0</version> 
    </dependency> 



    <!--Joda time --> 
    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time-jsptags</artifactId> 
     <version>1.1.1</version> 
    </dependency> 

    <!-- mysql connector --> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.24</version> 
    </dependency> 

    <!--log4j --> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <!--apache common --> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.4</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-configuration</groupId> 
     <artifactId>commons-configuration</artifactId> 
     <version>1.6</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.4</version> 
    </dependency> 


</dependencies> 

<pluginRepositories> 
    <pluginRepository> 
     <id>Codehaus</id> 
     <url>http://repository.codehaus.org/</url> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
    </pluginRepository> 
</pluginRepositories> 

<build> 
    <finalName>mycom.myproject.net</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.2</version>    
      <configuration> 
       <url>http://127.0.0.1:8080/manager/text</url> 
       <server>TomcatServer</server> 
       <path>/app</path> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
내 mybaties 모듈의 pom.xml은

입니다 ,843,210

하지만 MyBatis로 모듈을 건물입니다 때 나에게 내 핵심 모듈이 이미 오류

package com.mycom.myproject.service.impl.bean does not exist 

을 제공합니다. 거기에 무언가 나는 형제의지도 작성에 빠져있다.

자세한 내용이 필요하면 알려주십시오.

답변

2

mybatis 모듈의 부모가 app을 가리키고 있으므로 core에서 종속성을 상속하지 않습니다. 당신이 일반적인 의존성을 가지고 있다면, 당신은 하나 개 더 모듈 base을 만들고, 주요 치어에 모듈 목록에 추가 할 수 있습니다 :

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <artifactId>app</artifactId> 
     <groupId>com.mycom</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <groupId>com.mycom</groupId> 
    <artifactId>base</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>core</name> 
    <description>my app</description> 

    <properties> 
     <spring.version>3.1.1.RELEASE</spring.version> 
    </properties> 


    <dependencies> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <!-- so on --> 
    <depedencies> 
</project> 
:

<modules> 
    <module>base</module> 
    <module>core</module> 
    <module>app-mybatis</module> 
</modules> 

base 치어 공통 의존성을 보유해야

이제 이것을 coreapp-mybatis의 부모로 지정하십시오. 나는 그것이 작동해야한다고 생각한다.

+0

안녕하십니까 @Rohit 귀하의 신속한 응답을 주셔서 감사하지만 핵심 모듈은 부모가 아닌 애플 리케이션 부모입니다. 나는 코어 pom 안에 태그를 넣어야한다. 그리고 나는 그것을했다. 그러나 그것은 또한 어떤 differnec도 만들지 않는다. 여전히 동일한 오류가 발생합니다 – user965884

+0

@ user965884'core'가'app'의 부모가 아니면'app'에도 의존성을 추가해야합니다. 그것은'핵심'으로부터의 의존성을 어떻게 계승 할 것인가? 또는 둘 모두에 공통된 기본 설정을 작성하고 거기에 공통적 인 종속성을 정의하십시오. 그리고 그 부모를'core'와'app' 둘 다 만드십시오. –

+0

나는 당신의 제안도 시도해 보았고 그 오류는 [오류] 빌드는 1 개의 프로젝트를 읽을 수 없었다 -> [Help 1] – user965884

관련 문제