不从name-sources.jar导入类

时间:2016-07-11 13:17:03

标签: java maven java-ee

我创建了一个maven war项目,并希望从另一个模块(war)调用它。当我搜索时发现name-sources.jar文件被用作另一个模块的依赖项。我正在添加name-sources的依赖项,但import不起作用。

 <connectionStrings>
<add name="DefaultConnection" connectionString="data source=DMITRIJSS-PC\SQLEXPRESS;initial catalog=HRM_MVC_DEV_Test;user id=BTG\DmitrijsS;password=;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
<add name="HRMEntities" connectionString="metadata=res://*/HRMModel.csdl|res://*/HRMModel.ssdl|res://*/HRMModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DMITRIJSS-PC\SQLEXPRESS;initial catalog=HRM_MVC_DEV_Test;user id=BTG\DmitrijsS;password=;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

是构建maven项目时生成的文件。 下面是添加到另一个模块中的依赖项。

name-SNAPSHOT.war
name-SNAPSHOT-sources.jar 

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我理解这一点:你有两个网络项目 A B ,两者都使用maven packaging = war。在 A 中,您要在 B 中使用类。

忘记添加*-sources.jar作为依赖。

所以,这样做:

  1. 生成一个新的maven项目 C 作为带有项目包装“jar”的库
  2. 将您要分享的课程从 A 移至 C
  3. 在本地maven存储库中安装此工件 C mvn install
  4. 然后,在 A pom.xml B 中添加依赖 C
  5. <dependency>
        <groupId>your.group</groupId>
        <artifactId>yourLibrary</artifactId>
        <version>0.1.0-SNAPSHOT</version>
        <scope>compile</compile> <!-- this is default, so this line is optional-->
    </dependency>
    

答案 1 :(得分:0)

创建* -classes.jar文件。在pom.xml下使用以下代码:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.3</version>
  <configuration>                    
    <attachClasses>true</attachClasses>
 </configuration>
</plugin>

并在任何想要使用的地方添加了这个新jar。

<dependency>
        <groupId>com.honeywell.dras.sensibo</groupId>
        <artifactId>sensibo-client</artifactId>
        <version>{*}</version>          
        <classifier>classes</classifier>
</dependency>   

这样做的好处是我们可以生成war文件和jar文件,并根据需要使用它们。