GVKun编程网logo

在Hudson或其他CI工具中使用Ant自动检出并编译Eclipse项目的最佳方法?

16

在本文中,您将会了解到关于在Hudson或其他CI工具中使用Ant自动检出并编译Eclipse项目的最佳方法?的新资讯,并给出一些关于AndroidStudio导入Eclipse项目的两种方法、ANT

在本文中,您将会了解到关于在Hudson或其他CI工具中使用Ant自动检出并编译Eclipse项目的最佳方法?的新资讯,并给出一些关于Android Studio导入Eclipse项目的两种方法、ANT(2) Eclipse中使用ANT、c – 构建管理:Eclipse项目与Eclipse Managed Make项目、Eclipse+Maven+Nexus+Hudson+Svn 自动部署的实用技巧。

本文目录一览:

在Hudson或其他CI工具中使用Ant自动检出并编译Eclipse项目的最佳方法?

在Hudson或其他CI工具中使用Ant自动检出并编译Eclipse项目的最佳方法?

我们有几种产品具有很多共享的代码,并且必须保持几个版本。

为了解决这个问题,我们使用了许多Eclipse项目,其中一些包含库jar,而有些包含共享源代码(在一些项目中,是为了避免产生具有大量依赖关系的巨大堆,同时能够从头开始编译所有内容,以确保源和二进制文件是一致)。我们使用projectSet.psf来管理这些项目,因为它们可以直接从CVS中提取所有项目并留下一个充分准备的工作区。我们不直接构建或使用Maven。

现在,我们希望能够将所有这些项目及其各个版本放入一个Continuous
Integration工具中(我喜欢Hudson,但这只是一个口味问题),这实质上意味着我们需要一种自动方式来检出项目以一个新的工作区,并按照每个项目中项目文件中的说明编译源文件夹。哈德森(Hudson)没有提供这种方法来构建项目,因此我一直在考虑哪种最佳方法。

想法已经

  • 查找或编写了解projectSet.psf的ant插件/转换器,并将其映射到cvs-checkout并编译标签。
  • 在Eclipse中创建build.xml文件并使用它们。我尝试了一下,发现结果很冗长,并且具有绝对位置,这对于使用自动工具将文件放置在所需位置的效果不佳。
  • 编写一个Hudson插件,该插件可以理解projectSet.psf来导出配置并进行构建。
  • 只要硬着头皮,在出现问题时手动创建和更新CI配置-我不喜欢这样:)

我真的很想听听其他人的经历,所以我可以决定如何处理。


编辑:另一个选项可能是使用对Eclipse项目和/或项目集了解得更多的CI。我们不是虔诚的-
这只是使事情运行而不必自己做任何事情的问题。定速巡航也许是更好的选择?其他?


编辑:发现ant4eclipse具有“团队项目集”功能。
http://ant4eclipse.sourceforge.net/


编辑:使用ant4eclipse和ant-contrib ant扩展来构建完整的工作空间,作为类似于Eclipse 3.5M6中的Runnable
Jar工具的可运行的jar文件。我仍然依靠Eclipse创建初始​​的空工作区,并提取ProjectSet,因此这是下一个障碍。


编辑:最终具有双重配置,即Hudson从CVS中提取了ProjectSet.pdf文件中列出的相同模块集(需要具有相同的标签),导致它们彼此相邻放置。然后,ant4eclipse可以与主模块中嵌入的projectSet.psf文件一起很好地工作。注意事项:Hudson中的模块列表必须手动更新,并且之后似乎需要手动清理工作区,以使Hudson“发现”现在有比以前更多的项目。现在,这对我们来说已经工作了好几个月,但是要使所有内容都在ant文件中工作非常繁琐。


编辑:哈德森CVS项目中的ant4eclipse和Ctrl-A,Project面板中的Ctrl-C与Ctrl-
V一起使用的“使用团队项目”结果已经可以很好地与我们一起使用(对于成熟的项目,很少更改)。我在等待ant4eclipse 1.0发布-
http://www.ant4eclipse.org/,目前在里程碑2
-看到多少自产自销的功能可以与ant4eclipse的东西来代替。

编辑:ant4eclipse是M4中的20100609,所以http://www.ant4eclipse.org/node?page=1上的日程安排有所减少。


编辑:在长期使用ant4eclipse方法后,我的结论是,构建脚本变得非常粗糙并且难以维护。同样,Team
ProjectSet工具(ant4eclipse用于定位项目)对于基于CVS的存储库非常有效,但是在我们迁移到git之后就不行了(这本身就是一件大事)。新项目很可能将基于Maven,因为Jenkins对此提供了良好的支持。

答案1

小编典典

编写一个Hudson插件,该插件可以理解projectSet.psf来导出配置并进行构建。

这似乎是我的得奖答案。

我使用CruiseControl而不是Hudson,但以我的经验,如果您可以创建一个解决问题的插件,它将很快得到回报。通常,编写一个自定义适合您的解决方案的插件非常容易,而不是需要在类似情况下为每个人工作的插件。

Android Studio导入Eclipse项目的两种方法

Android Studio导入Eclipse项目的两种方法

Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Studio。

1. 直接导入

打开Android Studio,如果里面已经打开了项目,选择关闭当前的项目,会弹出一个Welcome对话框:

选择Import project (Eclipse ADT,Gradle,etc.),然后再选择要导入的Eclipse项目:

点击"OK"以后,选择导入的目标文件夹,默认的是相同的目录下,相同的项目名称后面跟了一个"1",实际上是新建了一个目录:

再点击"Next",会有一个选择对话框,去掉最后一个驼峰命名的选项:

最后点击"Finish",导入成功:

2. 间接导入

首先在Eclipse里面选择File->Export,选中"Generate Gradle build files":

点击"Next",会有一个说明对话框:

继续"Next",选择要转换的项目,注意只选中要转换的项目,这个项目需要的库不要选中:

再点击"Next",可以看见项目需要的库已经被自动包含了进来:

连续点击"Finish",结束在Eclipse中的操作。进入Android Studio,同样的关闭当前项目,进入Welcome对话框:

选择Import project (Eclipse ADT,etc.),进入项目选择的对话框,注意这时就不是选择要导入的项目,而是Eclipse工作目录下的build.gradle文件:

等待一段时间以后,可以看见项目以及需要的库都被导入了进来:

总结一下,第一种方法适用于不需要库的项目,第二种方法适用于需要库的项目。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!

ANT(2) Eclipse中使用ANT

ANT(2) Eclipse中使用ANT

在eclipse中使用ant非常方便,因为它提供了智能提示,自动检错等IDE常见的功能。

1 配置Ant

eclipse中,默认打开build.xml文件时,将使用eclipse默认的xml编辑器,这并不是我们所希望的,因此需要修改fileAssociation.

在FileAssociation中添加build.xml ,并将其AntEditor设置为default


2 编写build.xml并运行

  • 编写时,需要在project标签下指定basedir=“.”,即表示ant操作的目录为当前项目所在路径。
  • 运行时runAs->AntBuild,即可运行。
  • 可以在showview中,选择ant视图,并将build.xml文件拖入视图中,双击其中自动识别的target,就可以运行任意target
  
<?xml version="1.0" encoding="UTF-8"?>

<project  name="myAntProject" default="four" basedir=".">

	<property name="initP" value="lianjia"></property>
	<target name="init">
		<mkdir dir="${initP}"/>
	</target>
	
	<target name="second" depends="init"></target>
	
	<target name="third" depends="second"></target>

	<target name="four" depends="third,init"></target>



</project>


















版权声明:本文为博主原创文章,未经博主允许不得转载。

c – 构建管理:Eclipse项目与Eclipse Managed Make项目

c – 构建管理:Eclipse项目与Eclipse Managed Make项目

我在 Windows下开发,并使用 Eclipse和CDT开发C应用程序.

现在,对于构建管理,我可以创建一个普通的C项目,Eclipse将完全管理构建(使用适当的参数调用g编译器),或者我可以创建一个Managed Make C项目,Eclipse将管理Makefile然后在Makefile上调用make (在构建项目时),这反过来将完成构建过程.

使用这些方法之一而不是其他方法有什么好处吗?

编辑:我不是在谈论Managed Make vs Standard Make,而是我在谈论Make vs Eclipse.
昨天我尝试在一个不包含Make的系统上在eclipse下编译一个C项目,并且项目编译得很好,这意味着eclipse可以完全自己管理构建,这使得原始问题成为焦点:我是否需要使?;我可以单独使用eclipse.

那是我的问题……

解决方法

一个考虑因素是,您是否希望要求与您的项目合作的开发人员必须安装和使用Eclipse?这不是对Eclipse的价值判断,而是对您的受众的假设以及他们对您所选工具的熟悉程度.如果C程序员熟悉Java / Eclipse,那可能不是问题.如果他们不熟悉Eclipse,他们会将Eclipse视为完成工作的障碍.

您需要注意从头开始构建环境并保持更新的说明.你知道开发人员,会有一些C顽固分子诅咒你的决定并咆哮你应该如何用Make完成它而不是让他们安装一个全新的平台来进行构建.

Eclipse+Maven+Nexus+Hudson+Svn 自动部署

Eclipse+Maven+Nexus+Hudson+Svn 自动部署

1.maven 和 eclipse 整合

      参考之前的文章:http://my.oschina.net/OutOfMemory/blog/178512

2.nexus 的安装与使用

       nexus 是 maven 的一个私服,平时我们自己搞自己项目的话可能并不会考虑这些,所有构件都需要通过 maven 的中央仓库和第三方的 Maven 仓库下载到本地,但如果在一个团队中,所有人都重复的从 maven 仓库下 载构件无疑加大了仓库的负载和浪费了外网带宽,也有很多情况下项目的开发都是在内网进行的,连接不到 maven 仓库,这时候就需要架设一台 maven 的私服了。

2.1 下载:http://www.sonatype.org/nexus/archived/  我这边下载的是 nexus-2.9.0-bundle.zip

2.2 启动: 解压以后在 nexus-2.9.0-bundle\nexus-2.9.0-04\bin\jsw   不同操作系统有各自的启动方式
 windows-x86-64:运行 console-nexus.bat 进行启动
 linux-x86-64:

./wrapper ../conf/wrapper.conf 

2.3 访问地址:http://127.0.0.1:8081/nexus

2.4 登录: 可以点击界面右上角的 Log In 进行登录,用户名密码:admin/admin123


点击左侧的 Repositories 出现如上界面

2.5 介绍:

Public Repositories:  仓库组
3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库
Apache Snapshots:  用了代理 ApacheMaven 仓库快照版本的构件仓库
Central:  用来代理 maven 中央仓库中发布版本构件的仓库
Central M1 shadow:  用于提供中央仓库中 M1 格式的发布版本的构件镜像仓库
Codehaus Snapshots:  用来代理 CodehausMaven 仓库的快照版本构件的仓库
Releases:  用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots: 用来部署管理内部的快照版本构件的宿主类型仓库

我们平时关注比较多的就是  public Repositories,3rd party, Releases,Snapshots

2.6eclipse 中 maven 的下载与配置

maven 下载:http://maven.apache.org/download.cgi  我这边下载的是 apache-maven-3.1.1

依次打开 window->Preferences-maven 如下界面:

默认帮我们设置的本地仓库是:C:\Users\Administrator\.m2, 可以打开 settings.xml

<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

默认的下载位置就是:${user.home}/.m2/repository, 也就是 C:\Users\Administrator\.m2\repository

C 盘容易满,所有不建议放在默认路径下

当然这边默认的位置是可以修改的,比如我这边把位置改成了:

相应的 settings.xml 中做如下设置:

<localRepository>D:\mvn2\myCenterRepository</localRepository>
2.7 配置从 Nexus 下载构件

2.7.1 在 settings.xml 中配置 Nexus 仓库

maven 提供了 profile 来配置仓库信息:

<profiles>
    <profile>  
      <id>myprofile</id>  
      <repositories>  
            <repository>  
                <id>central</id>                                     
                <url>http://central</url>                        
                <releases>  
                    <enabled>true</enabled>  
                </releases>  
                <snapshots>  
                    <enabled>true</enabled>  
                </snapshots>  
            </repository>  
        </repositories>     
         <pluginRepositories>  
            <pluginRepository>  
              <id>central</id>  
              <url>http://central</url>  
              <releases>  
                <enabled>true</enabled>  
              </releases>  
              <snapshots>  
                <enabled>true</enabled>  
              </snapshots>  
            </pluginRepository>  
        </pluginRepositories>  
    </profile>  
</profiles>

激活 profiles:

<activeProfiles>  
    <activeProfile>myprofile</activeProfile>  
</activeProfiles>

配置镜像:

<mirrors>
   <mirror>     
     <id>nexus</id>      
     <url>http://127.0.0.1:8081/nexus/content/groups/public/</url>     
     <mirrorOf>*</mirrorOf>     
    </mirror> 
</mirrors>
这里配置 mirrorOf 的值为 *,代表 maven 的所有访问请求都会指向到 Nexus 仓库组。


2.7.2 当然也可以在项目的 pom 文件中进行配置,这个每个项目要做相同的配置,不推荐使用。

2.8 部署构件到 Nexus

2.5 中介绍的,3rd party 和 Releases我们经常需要部署的 2 个地方。

一个是无法从公共仓库获得的第三方发布版本的构件仓库,另一个是用来部署管理内部的发布版本构件的宿主类型仓库

From POM: 如果要部署的构件本身就是 maven 项目,需要提供 pom.xml 文件和 jar 包

GAV Parameters: 不是 maven 项目的构件,只需要提供 jar 包

我的理解是,如果构件的项目本身需要依赖其他项目,那么需要使用 From POM,如果不依赖其他项目,那么使用 From POM 和 GAV Parameters 都可以

3.Hudson 的安装和使用

     Hudson 是 Jenkins 的前身,是基于 Java 开发的一种持续集成工具,用于监控程序重复的工作,持续的软件版本发布 / 测试项目。

1. 下载:http://hudson-ci.org/  我这边下的版本是 hudson-3.2.2.war

2. 安装,将 hudson-3.2.2.war 放入 tomcat 中就可以,启动 tomcat 就可以了,访问地址:http://localhost:8080/hudson-3.2.2/

刚进主界面需要我们选择要安装的插件:

Hudson Subversion Plug-in  :  整合 svn 的一款插件

maven 和 ant 的插件都已经默认安装了。

当然也可以进入:系统管理 ->Manage Plugins using Classic Plugin Manager, 重新选择需要安装的插件

3. 系统配置

系统管理 -> 系统设置

jdk 配置,ant 配置,maven 配置

当然还可以进行其他配置,比如邮件提醒等。

      注:此处如果本地下载的是最新的 apache-maven-3.3.3,无法被 hudson 调用,因为 3.3.3 以后 bin 里面的可执行文件变了,应该需要安装 Hudson Maven3 Plugin 插件可以使用 (未试)

4. 新建任务

新建任务,指定名称(如 test), 选择 “构建一个自由风格的软件项目”。

5. 配置 svn

注:此处如果需要 svn 帐号,点击 enter credential, 选择:User name/password authentication

6.build

可以选择多种 build 方式,我们选择 Invoke Maven2 (Legacy)

7. 下面就可以点击左上角的 “立即构建” 了

Hudson 将首先从 svn 下载资源,然后执行 maven  build 项目。

点击右边的小黑框可以查看日志输出

另附:

1. 本地的 Hudson 根目录:C:\Users\Administrator\.hudson\jobs

2.hudson 的环境变量  http://blog.sina.com.cn/s/blog_b4b4f2a801018vsq.html

关于在Hudson或其他CI工具中使用Ant自动检出并编译Eclipse项目的最佳方法?的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Android Studio导入Eclipse项目的两种方法、ANT(2) Eclipse中使用ANT、c – 构建管理:Eclipse项目与Eclipse Managed Make项目、Eclipse+Maven+Nexus+Hudson+Svn 自动部署的相关知识,请在本站寻找。

本文标签: