求助idea 导入maven工程 android工程

上传Android或Java库到Maven central repository - 为程序员服务
上传Android或Java库到Maven central repository
利用Sonatype将jar或aar提交到Maven的中央仓库
是不是希望将自己的jar或是aar传到maven官方库中,在
中可以被其他人搜索使用呢,是的话,往下看吧。
1、Sonatype简介
Sonatype使用Nexus为开源项目提供托管服务。你可以通过它发布快照(snapshot)或是稳定版(release)到Maven中央仓库。我们只要注册一个Sonatype的JIRA账号、创建一个JIRA ticket,然后对POM文件稍作配置即可。
2、注册账号
注册Sonatype的JIRA账号,这个账号在后面配置maven server时需要使用。
创建一个JIRA ticket,你的一个项目对应着这里的一个JIRA ticket,
其中Summary可以填写项目名,Description填写项目介绍。
Group Id非常重要,必须是你项目pom.xml中的group id的父级,做为你账号和该项目关联的标记。如我项目pom.xml中group id为cn.mon,为了我所有项目都可以发布,申请填写的Group Id为cn.trinea
其他按照提示填写即可。完成后大概2个工作日左右,
该Issue会变为 _resolved_ 状态表示可用,在可用前下面的过程除了第7步 正式发布外,其他的都没有问题
3、软件环境
(1) JDK5以上
(2) Subversion 或是 Git
这是根据你项目需要的,你项目用什么版本控制管理工具
(3) Maven 2.2.1+
(4) GPG,用于对需要上传的文件加密和签名
下载地址:
,windows版下载地址:
安装完成后通过在命令行模式下通过
[crayon-5626adcee9/]
命令生成自己的public key,除了姓名、邮箱、备注外其他都可以使用默认配置,最后需要填写一个
,注意它在后面mvn release签名时需要。
public key生成结束后用
[crayon-5626adcee2/]
命令查看key内容,如下:
[crayon-5626adcee3/]
其中C6EED57A为key id,需要将他上报给服务器,命令如下:
[crayon-5626adcee853a/]
这样便完成了gpg public key的创建和上报操作。
如果有兴趣深入了解可见:
4、标准的Pom文件格式
(1) POM文件必须含有以下元素
&modelVersion&
&artifactId&
&packaging&
&description&
&licenses&
&scm&&url&
&scm&&connection&
&developers&
(2) 如果是jar文件,必须包含-javadoc.jar及-sources.jar,即需要在POM中配置build的相应plugin
关于pom.xml内容可参考:
其中需要修改以下地方
(1) 相关元素信息改为你自己项目信息。
(2) 必须保证parent或parent的parent为
[crayon-5626adcee853f/]
(3) 如果你版本控制使用的不是git,而是其他工具,配置见
(4) 纯Java(非Android)工程需要将&packaging&aar&/packaging&改为&packaging&jar&/packaging&,并且去掉
[crayon-5626adcee3/]
[crayon-5626adcee5/]
5、配置Maven仓库地址
在.m2目录下的settings.xml文件中添加
[crayon-5626adcee854e/]
将其中的your-jira-id和your-jira-pwd替换为你在https://issues.sonatype.org/上的用户名和密码。
m2 目录在linux下路径为/home/user-name/.m2,windows下路径为C:\Users\your-user-name\.m2
如果后面步骤中发现settings修改不生效可参考:
6、编译上传
(1) 发布一个snapshot版本
mvn clean deploy
发布完成后登陆
(https://issues.sonatype.org/ 上的用户名和密码),通过下图步骤找到自己的Artifact(上传的jar或aar或pom等)
(2) 发布一个release版本
mvn release:clean release:prepare release:perform
过程中需要通过GPG签名,需要输入上面的passphase。发布完成后我们依然可以通过类似上图步骤找到我们的Artifact
其他上传方式见
7、正式发布
这里的正式发布是指同步到Maven主仓库使得其他人可以使用。主要包括Close和Release两步,先Close后Release,分别如下图
其他不明白可以查看:
(1) 在release时可能会出现
[crayon-5626adcee3/]
的403弹窗,这可能是因为在2中创建的JIRA ticket,状态还没有变为 _resolved_,等待可用即可。如果上面截图中你的Repository列表中Profile列的值不是你在创建JIRA ticket时的Group Id需要重新提交。
(2) 如果是第一次release,需要到之前你的JIRA ticket下,评论下告诉他们,你已经release了,需要同步下,我的JIRA ticket:
官方指南:
微信codek2, Focus on Android, Java, Open Source, Performance Optimization
原文地址:, 感谢原作者分享。
您可能感兴趣的代码使用Maven管理Android项目(一) - 玄坛{ blogging } - ITeye技术网站
博客分类:
Android官方开发指引中并不包含对maven的支持,但在google code上有个开源的 maven-android-plugin 插件项目,使用该插件可以很好地通过maven来管理Android项目,并对Android的多模块设计提供了良好的封装。
安装maven、android SDK等操作此处不再涉及,下面简单介绍如何配置pom文件,以及如何在eclipse上安装Maven Integration for Android Development Tools,做到命令行下和eclipse上都能够利用maven进行项目构建的目的。
一、Android项目的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&example.XXXX.cupid&/groupId&
&artifactId&cupid&/artifactId&
&version&1.0.0-SNAPSHOT&/version&
&packaging&apk&/packaging&
&name&Cupid&/name&
&dependencies&
&dependency&
&groupId&com.google.android&/groupId&
&artifactId&android&/artifactId&
&version&2.2.1&/version&
&scope&provided&/scope&
&/dependency&
&dependency&
&groupId&com.alibaba&/groupId&
&artifactId&fastjson&/artifactId&
&version&1.1.23&/version&
&/dependency&
&dependency&
&groupId&apache-httpclient&/groupId&
&artifactId&commons-httpclient&/artifactId&
&version&3.1&/version&
&/dependency&
&/dependencies&
&finalName&${project.artifactId}&/finalName&
&sourceDirectory&src&/sourceDirectory&
&pluginManagement&
&groupId&com.jayway.maven.plugins.android.generation2&/groupId&
&artifactId&maven-android-plugin&/artifactId&
&version&2.8.4&/version&
&extensions&true&/extensions&
&/plugins&
&/pluginManagement&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&version&2.3.2&/version&
&configuration&
&source&1.6&/source&
&target&1.6&/target&
&encoding&UTF-8&/encoding&
&/configuration&
&groupId&com.jayway.maven.plugins.android.generation2&/groupId&
&artifactId&maven-android-plugin&/artifactId&
&configuration&
&!-- platform or api level (api level 4 = platform 1.6) --&
&platform&8&/platform&
&deleteConflictingFiles&true&/deleteConflictingFiles&
&/configuration&
&/plugins&
&/project&
想要在命令行下构建Android工程,只需要在工程的根目录下新增pom.xml文件即可。
maven-android-plugin最新版本为3.5.0,如果读者机器上的maven版本较老,建议和我一样,采用较早的maven_android的版本,否则会由于和maven版本的兼容性问题无故报错。
*注:maven-android-plugin在3.0.0版本开始已经更名为android-maven-plugin.
二、如何在eclipse上安装Maven Integration for Android Development Tools
根据google code上的提示,需要安装软件及插件版本为:
这里要特别注意,安装的M2Eclipse插件版本最好是 0.12.0 或是0.12.1,否则在安装Maven Integration for Android Development Tools时会报: Missing requirement: Maven Integration for Android Development Tools 0.2.5 (com.googlecode.eclipse.m2e.android.feature.feature.group 0.2.5) requires 'org.maven.ide.eclipse 0.12.0' but it could not be found 的错误
M2Eclipse 0.12.1 的安装方法为:启动Eclipse之后,在菜单栏中选择Help,然后选择Install New Software....,接着在Install对话框中店家Work with字段边上的Add按钮,得到一个新的Add Repository对话框,在Name字段中输入m2e,Location字段中输入http://m2eclipse.sonatype.org/sites/m2e,然后点击Ok。
Maven Integration for Android Development Tools安装方法为: Work with中输入/a/eclipselabs.org/m2eclipse-android-integration/updates/m2eclipse-android-integration/
浏览 16398
zhangym124
浏览: 160599 次
来自: 杭州
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
snowfigure 写道我专门登陆上来,就是想问问,这个Ve ...
我专门登陆上来,就是想问问,这个Version有啥鸟用?定义完 ...
引用整个包就好了,不用具体类
至于大数据量时导致图表渲染慢的问题,可以通过改变业务逻辑及交互 ...Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. J it only takes a minute:
I'm kind of new to Android.
I'm setting up a maven module for android application (it's inside an existing multi-module project), which uses Google Support Libraries (v4, v7, v13).
What is the most adequate way of making it work with maven.
I want my project to be able to build with Jenkins (Maven), so I can't link any IDE specific projects or any means of non-maven dependencies.
Any options to combine maven/gradle in Jenkins are also acceptable.
unfortunately those libraries are not in the central maven repository. so you have to use the
maven-android-sdk-deployer () to install the libraries into your maven repository. then add the needed libraries to your pom.xml file as described in the readme.
Besides the , if you always have Android SDK installed with Google extras like me, you can define a local repository in your projects POM file and let maven download the dependencies from this local one.
The rational behind this is that, Google has already release the extra addons in a maven repository compatible directory layout. For my own machine, it is like this:
jerry-mac-mini:android jerry$ pwd
/Users/jerry/adt-bundle-mac-x86_64-/sdk/extras/android
jerry-mac-mini:android jerry$ tree m2repository
m2repository
├── NOTICE.txt
├── com
└── android
└── support
├── appcompat-v7
├── 18.0.0
├── appcompat-v7-18.0.0.aar
├── appcompat-v7-18.0.0.aar.md5
├── appcompat-v7-18.0.0.aar.sha1
├── appcompat-v7-18.0.0.pom
├── appcompat-v7-18.0.0.pom.md5
└── appcompat-v7-18.0.0.pom.sha1
├── 19.0.0
├── appcompat-v7-19.0.0.aar
├── appcompat-v7-19.0.0.aar.md5
.............
So, I just need to put some extra lines in my POM file like this, and the "env.ANDROID_HOME" is the environment variable pointed to Android SDK installation path.
&repositories&
&repository&
&id&android-support&/id&
&url&file://${env.ANDROID_HOME}/extras/android/m2repository&/url&
&/repository&
&/repositories&
&dependency&
&groupId&com.android.support&/groupId&
&artifactId&support-v4&/artifactId&
&version&19.0.1&/version&
&/dependency&
After these steps, Maven in my ADT enabled Eclipse and console are both happily to resolve the desired dependencies, like this:
jerry-mac-mini:android-app-project jerry$ mvn dependency:tree
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building android-app-project 0.0.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: file:///Users/jerry/adt-bundle-mac-x86_64-/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.pom
Downloaded: file:///Users/jerry/adt-bundle-mac-x86_64-/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.pom (403 B at 28.1 KB/sec)
Downloading: file:///Users/jerry/adt-bundle-mac-x86_64-/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.jar
Downloaded: file:///Users/jerry/adt-bundle-mac-x86_64-/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.jar (621 KB at 16783.8 KB/sec)
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ android-app-project ---
[INFO] team.apollo:android-app-project:apk:0.0.5-SNAPSHOT
[INFO] +- com.google.android:android:jar:2.3.3:provided
+- org.apache.httpcomponents:httpclient:jar:4.0.1:provided
+- org.apache.httpcomponents:httpcore:jar:4.0.1:provided
\- commons-codec:commons-codec:jar:1.3:provided
+- org.khronos:opengl-api:jar:gl1.1-android-2.1_r1:provided
+- xerces:xmlParserAPIs:jar:2.6.2:provided
\- org.json:json:jar::provided
[INFO] +- com.android.support:support-v4:jar:19.0.1:compile
[INFO] +- com.google.code.gson:gson:jar:2.2.2:compile
[INFO] +- de.mindpipe.android:android-logging-log4j:jar:1.0.3:compile
[INFO] \- log4j:log4j:jar:1.2.16:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.339s
[INFO] Finished at: Mon Mar 24 14:32:00 CST 2014
[INFO] Final Memory: 10M/325M
[INFO] ------------------------------------------------------------------------
2,85121522
I've just run into the same problem and ended up deploying in a public gitgub repository.
If you still need to use it, you can do one of the following:
Add the github repository to the repositories section in your pom.xml:
&repository&
&id&android.support-mvn-repo&/id&
&url&/kmchugh/android.support/mvn-repo&/url&
&snapshots&
&enabled&true&/enabled&
&updatePolicy&daily&/updatePolicy&
&/snapshots&
&/repository&
Then you can add the dependency as follows:
&!-- Android Support Libraries --&
&dependency&
&groupId&uk.co.icatalyst&/groupId&
&artifactId&android-support-v4&/artifactId&
&version&18&/version&
&scope&compile&/scope&
&/dependency&
Or, fork the repository, then you can use your own URL for the repository URL.
I've updated the libraries, an alternative dependency would be:
&dependency&
&groupId&com.android.support&/groupId&
&artifactId&support-v4&/artifactId&
&version&18.0.0&/version&
&scope&compile&/scope&
&/dependency&
And for the gridlayout:
&dependency&
&groupId&com.android.support&/groupId&
&artifactId&gridlayout-v7&/artifactId&
&version&18.0.0&/version&
&scope&compile&/scope&
&/dependency&
I've simply used the system scope feature provided by maven
&dependency&
&groupId&com.google.android&/groupId&
&artifactId&support-v4&/artifactId&
&version&19.0.1&/version&
&scope&system&/scope&
&systemPath&${env.ANDROID_HOME}/extras/android/support/v4/android-support-v4.jar&/systemPath&
&/dependency&
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Top questions and answers
Important announcements
Unanswered questions
By subscribing, you agree to the
Stack Overflow works best with JavaScript enabled建立企业内部Maven服务器并使用Android Studio发布公共项目_服务器应用_Linux公社-Linux系统门户网站
你好,游客
建立企业内部Maven服务器并使用Android Studio发布公共项目
来源:Linux社区&
作者:qinxiandiqi
由于 Studio使用了Gradle构建工具,在library依赖的处理上是将被依赖的library作为一个module引入(拥有一份完整的library拷贝),而Eclipse的ADT则是直接将library作为外部项目依赖链接进来,两者各有各的优缺点。Android Studio的好处是能时刻保持项目的完整性,每一个项目都包含了整个项目所需要的一切东西,当你把项目共享给别人的时候就不会因为落下某个library而导致别人无法正常打开你的项目。缺点则是多个项目都依赖同一个library,每个项目都有自己一份library代码拷贝,当这个library的代码需要更新的时候,每一个项目中的library代码都需要更新一遍。而Eclipse的library依赖,只是做了一个library链接,多个项目可以链接到同一个library,好处是library需要修改的时候只需要修改一处代码,缺点时与他人共享项目的时候可能会落下library忘记共享。
一般一个公司长期开发累积下来,都会总结出一套自己的SDK或者工具供自己的产品使用。如果使用Android Studio开发,一旦自己的SDK需要更新难免就会遇到前面说的问题。好在Android Studio除了library module依赖这种方法之外,还提供了本地仓库或者(服务器)远程仓库依赖,通过Gradle工具自动从仓库中获取并管理项目所需要的library。Gradle支持maven仓库,早期的Android Studio直接使用的就是maven中央仓库,虽然正式版之后改用jcenter,但是依然可以混用自定义的maven仓库。
Maven权威指南_中文完整版清晰PDF&
Maven 3.1.0 发布,项目构建工具
Linux 安装 Maven
Maven3.0 配置和简单使用
下搭建sun-jdk和Maven2
Maven使用入门
整体上的解决思路分三个步骤:
第一,就是在自己公司内部的服务器上搭建一个maven仓库
第二,将自己公司的公共类库发布到公司内部服务器的maven仓库上
第三,在公司其它项目中配置公司内部服务器maven仓库地址,并引用所需的library,Gradle会自动从服务器maven仓库中获取
1、在自己公司内部服务器上搭建maven仓库
服务器上的maven仓库可以使用Sonatype nexus oss来搭建。sonatype nexus oss 是一个maven仓库管理工具,并提供了web控制台,部署和使用都很方便。
1.1 下载sonatype nexus oss
将sonatype nexus oss下载到公司内部服务器上,下载地址:
1.2 安装并运行sonatype nexus oss
首先确认服务器上是否已经安装JDK,nexus oss的运行需要JDK7或者JDK8。如果没有安装JDK,请先安装JDK。
下载下来的nexus oss是一个zip或者tar.gz压缩包,需要将其解压。你可以将其解压到任何位置,nexus oss的运行对其所在位置没有什么特殊要求。解压后会看到两个文件夹,一个是nexus-x.xx.x-xx,一个sonatype-work。其中nexus-x.xx.x-xx是nexus oss的主目录,所有运行程序和配置文件都在里面。sonatype-work是nexus-oss的数据目录,nexus-oss运行过程的maven仓库数据都在这里面。进入nexus-x.xx.-x-xx/bin目录,window平台的服务器直接运行nexus.bat脚本就可以了。下面详细讲下linux平台的安装和运行。
nexus oss官方建议将nexus-x.xx.x-xx安装到/usr/local目录下,并做个/usr/local/nexus链接指向nexus-x.xx.x-xx目录,方便以后nexus oss版本升级。方法如下
$ sudo cp nexus-x.xx.x-xx-bundle.tar.gz /usr/local$ cd /usr/local$ sudo tar xvzf nexus-x.xx.x-xx-bundle.tar.gz$ sudo ln -s nexus-x.xx.x-xx nexus
如果你下载的是zip压缩包,则使用sudo unzip nexus-x.xx.x-xx-bundle.zip命令解压。
为了方便以后使用,可以添加$NEXUS_HOME环境变量指向/usr/local/nexus。另外,默认配置sonatype-work目录与nexus-x.xx.x-xx在同一个目录下,如果你想讲sonatype-work迁移到其它指定路径,可以修改nexus-x.xx.x-xx/conf/nexus.properties配置文件中的nexus-work变量值。
完成之后,运行nexus oss只需要运行nexus-x.xx.x-xx/bin/nexus脚本,参数可以为console或者start。console会在控制台打印出运行日志。如果有配置NEXUS_HOME环境变量,就可以在任何地方执行下面语句:
$NEXUS_HOME/bin/nexus start
1.3 配置sonatype nexus oss
运行成功之后,在浏览器打开http://服务器地址:8081/nexus就可以看到nexus oss的控制面板。
点击右上角login登录,默认账号密码为admin/admin123。登录后可以看到以下界面:
左边是功能面板,可以在Repositories里面查看所有的maven仓库,在User里面进行用户管理(修改密码什么的)。点击Repositories,查看maven仓库:
可以看到nexus oss默认已经建好了几个仓库,每个仓库都有自己的一些属性。
第一个重要属性是type仓库类型。主要有group、hosted、proxy、virtual四种类型。不同类型的仓库有不用的作用和工作模式,一般只需要关注group、hosted、proxy三种类型。由于nexus oss上面可以有多个maven仓库,但是maven这个工具要求使用groupId:artifactId:version这三个参数就能唯一确定一个项目,因此nexus oss使用group类型的仓库来决定nexus oss上各个maven仓库的优先级,以解决不同maven拥有相同项目的冲突。proxy类型的仓库其实只是个代理,用于代理其他服务器上的maven仓库。hosted类型是nexus oss自己所在服务器本地的maven仓库,也是我们这次主要使用的仓库类型。
Repository Path是仓库的地址,把自己的项目发布到maven和引用maven仓库中项目的时候需要用到。
选择一个仓库后,可以在下面窗口中看到这个仓库的具体信息,其中Configuration标签页中可以对仓库进行设置。
我们的目的是要将我们自己的项目发布到我们自己的服务器上去,因此我们要选择hosted类型的仓库,以免公司内部的代码外泄出去(当然服务器也得是内网的服务器,公网能访问到的服务器,发布上去的代码也有一定的风险)。对于我们要使用的hosted类型的仓库,重点要看的是里面的Repository Policy仓库存储协议,有release和snapshot两种,release表示发行版,snapshot表示快照版本。还有一个Deployment Policy部署协议,有Allow Redeploy(允许部署)、Disable Redeploy(不允许部署)、Read Only(只读)三种模式。只有在Allow Redeploy模式下,我们才有权限可以将我们的项目发布到这个项目中。nexus oss默认已经建立了Releases和snapshots两个hosted仓库,我们检查一下配置就可以直接拿来用,当然你也可以自己建立hosted仓库。&
更多详情见请继续阅读下一页的精彩内容:
相关资讯 & & &
& (12月19日)
& (12月18日)
& (12月19日)
& (12月19日)
& (12月13日)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 idea 导入maven工程 的文章

 

随机推荐