在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ maven工程打包,并給其他項(xiàng)目調(diào)用

maven工程打包,并給其他項(xiàng)目調(diào)用

用maven新建了一個(gè)查詢數(shù)據(jù)庫(kù)的項(xiàng)目,導(dǎo)入了mybatis依賴。
pom.xml

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.40</version>
    </dependency>

寫(xiě)了測(cè)試類(lèi),確實(shí)可以從數(shù)據(jù)庫(kù)中取到數(shù)據(jù)。
然后用maven install打包,獲得jar。再在另一個(gè)工程里加入這個(gè)包,build path。
然后使用其中的方法,報(bào)找不到mybatis包的錯(cuò)誤。

public class Test {
    public static void main(String[] args) {
        DataSource d=new DataSource();
    }
}

 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
    at com.sunyard.backer.SessionUtil.<clinit>(SessionUtil.java:21)
    at com.sunyard.backer.controller.DataSource.<clinit>(DataSource.java:19)
    at com.sunyard.test.Test.main(Test.java:7)
    

應(yīng)該是maven打jar的時(shí)候依賴的包沒(méi)有打進(jìn)去吧?本來(lái)最開(kāi)始是要打jar然后放在目錄里在反射調(diào)用其獲取數(shù)據(jù)的方法的,結(jié)果報(bào)錯(cuò)。然后嘗試直接導(dǎo)入build path也報(bào)錯(cuò)。請(qǐng)問(wèn)maven項(xiàng)目該如何打包才可以把pom.xml中依賴的包都打進(jìn)去?

回答
編輯回答
尋仙

你使用的工程也使用maven就可以啦,會(huì)自動(dòng)解決需要依賴的jar,如果你想把所有依賴都打到一個(gè)jar里,可以使用assembly插件,在pom.xml里加入:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>

然后:

mvn clean compile assembly:single
2018年9月14日 01:04
編輯回答
紓惘

原來(lái)打出來(lái)有兩個(gè)jar包,一個(gè)是帶依賴的,一個(gè)是不帶依賴的。。。
用帶依賴的就可以了。
粗心了。。。

clipboard.png

2017年3月28日 15:03