2013-07-16 33 views
0

我工作的一个Android项目,有一些核心的代码(即具有一定的依赖性),我想版本,并到库/神器(?)的容器,我可以拉进其他项目。我使用Maven构建,我的编辑器是IntelliJ。我从来没有创建过一个.jar,但我认为这就是我想要做的。行家创建POM

在的IntelliJ,我去了文件 - >项目结构 - >文物 - >+,但我迷路了。我不知道如何定义哪些源目录和文件包含在jar中,我不确定是否需要在jar中包含它的依赖关系的实际jar包?或者在pom.xml文件中定义这些依赖关系并将pom.xml文件包含在jar中?

任何澄清,将不胜感激。

回答

1

Maven项目的依赖在其的pom.xml文件中定义的(基本上,从这里改变的依赖关系是你在视觉上做的IntelliJ使用由文件 - >项目结构 - >工件)。 Maven采用的源文件是您的项目的src/main目录中的文件。构建默认情况下,排除依赖完成的,因此,如果你在你的最终罐子to include them,你在你的POM文件来指定这个(插件):

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>attached</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    </plugin> 

之后,你必须执行mvn安装命令让你的罐子创建。你能做到运行Maven外部或从IDE(如果你有安装some Maven plugin)和罐子将在项目的目标文件夹中创建。

+0

可以使Maven的只能看着在src /主目录某些目录/文件?我想在jar中的文件包含在Android应用程序中。我不想在jar中的整个Android应用程序,只是某些文件。 – David

+0

我想你正在维护一个Android项目的布局。为什么你只要放一些文件?假设你放在该目录中的所有内容都是有用的。如果不是,它的位置不正确。 –

+0

配置可以修改为[包含/排除特定的包结构](例如http://maven.apache.org/plugins/maven-jxr-plugin/examples/include-exclude.html)。 <结构> ... ** /包括/ *。java的 ... Levity

0

中的IntelliJ IDEA的设置,当你建立一个使用IntelliJ IDEA的编译器将只创建JAR。要让Maven创建JAR并将其部署到Maven存储库,您需要使用maven assembly plugin。有一个predefined configuration用于创建具有依赖关系的jar。

Maven Shade Plugin还可以创建JAR和处理更高级的用例。但是,你可能要开始与组装插件/