将Java项目包含为库

时间:2013-01-04 00:05:03

标签: java android eclipse cross-platform

我的eclipse工作区中有三个项目:

EventKitchenCore
EventKitchenDesktop
EventKitchenAndroid

EventKitchenCore包含所有核心功能,EventKitchenDesktopEventKitchenAndroid本质上只是不同的用户界面。

我已添加EventKitchenCore并在EventKitchenDesktop中作为库工作,但我无法弄清楚如何将其作为库添加到EventKitchenAndroid

我该怎么做?每次我做出改变时,都必须在lib目录中导出为jar ...

我尝试在Properties > Java Build Path > LibrariesProperties > Android > Library中添加核心项目,但没有运气:\

更新 - 现在,我通过将核心项目导出为libs文件夹中的jar来实现它。然而,我经常变化,就像我说的那样,这是一种痛苦。

9 个答案:

答案 0 :(得分:12)

Eclipse内置Ant支持。您可以利用它自动创建当前项目的JAR并将其放在另一个项目的文件夹中。

如果EventKitchenAndroidEventKitchenCore项目都在同一个工作区中,请在build.xml项目中创建一个EventKitchenCore文件,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<project name="EventKitchenCore" default="createjar">
    <target name="createjar">
        <jar destfile="../EventKitchenAndroid/libs/EventKitchenCore.jar" basedir="bin" />
    </target>
</project>

要测试它,请在Eclipse中选择该文件,然后按 Ctrl + F11 将其作为Ant构建文件运行。如果它按照您想要的方式工作,那么您可以告诉Eclipse在每次构建项目时自动执行此构建文件。转到EventKitchenCore的项目属性,在 Builders 属性中,单击导入... ,然后选择刚刚创建的build.xml文件。

现在,它将在每次构建项目时执行。您可以通过按 Ctrl + B 手动强制构建项目。另请参阅我刚创建的video demo

答案 1 :(得分:4)

您可以将项目配置为依赖于EventKitchenCore的 Maven工件,因此,Maven将为您处理此问题:

EventKitchenCore pom.xml:

<project ...>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.adamgaskins</groupId>
   <artifactId>event-kitchen-core</artifactId>
   <packaging>jar</packaging>
   <version>0.0.1-SNAPSHOT</version>
   <name>EventKitchenCore</name>
</project>

EventKitchenDesktop pom.xml:

<project ...>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.adamgaskins</groupId>
   <artifactId>event-kitchen-desktop</artifactId>
   <packaging>jar</packaging>
   <version>0.0.1-SNAPSHOT</version>
   <name>EventKitchenDesktop</name>
   <dependencies>
     <dependency>
       <groupId>com.adamgaskins</groupId>
       <artifactId>event-kitchen-core</artifactId>
       <version>0.0.1-SNAPSHOT</version>
     </dependency>
   <dependencies>
</project>

EventKitchenAndroid pom.xml:

<project ...>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.adamgaskins</groupId>
   <artifactId>event-kitchen-android</artifactId>
   <packaging>apk</packaging> <!-- for this, you need the maven-android-plugin -->
   <version>0.0.1-SNAPSHOT</version>
   <name>EventKitchenAndroid</name>
   <dependencies>
     <dependency>
       <groupId>com.adamgaskins</groupId>
       <artifactId>event-kitchen-core</artifactId>
       <version>0.0.1-SNAPSHOT</version>
     </dependency>
   <dependencies>
</project>

不要忘记SNAPSHOT后缀,否则,Maven不会更新您的更改。

答案 2 :(得分:2)

最简单的想法(也可以在Eclipse之外工作)就是从库的package-directory创建一个符号链接/快捷方式到项目的src - 文件夹中:

|- EventKitchenCore
   |- src/
      |- org.your.library.package <-+
|- EventKitchenDesktop              |
   |- src/                          |
      |- org/desktop/something/     |
      |- symlink to ----------------+
|- EventKitchenAndroid              |
   |- src/                          |
      |- org/android/something/     |
      |- symlink to ----------------+

这样,您可以编译实际项目,就好像您的库将成为应用程序的一部分,并且您的更改会立即反映在您的项目中。

答案 3 :(得分:2)

我想说,正如一些贡献者建议的那样,使用maven或ant。配置很简单,大多数已经放置它们,所以这是复制和粘贴的问题。 当您在开发环境中时,您可以做的是在构建路径中添加项目。转到构建路径并选择“项目”选项卡并添加所需的项目,因此每次进行更改时,所有更改都对链接的项目可见。当您即将部署时,您可以使用maven或ant。但是,您也可以从开发过程开始。但是如果你想快速修复,我建议你参考这些项目,如果你不想使用maven或ant。但是在部署时我强烈建议使用这两个项目管理器中的一个,因为正如您所提到的,将项目导出为jar,然后将它们添加到libraries文件夹是一件痛苦的事。

答案 4 :(得分:1)

这是一个可以帮助您的解决方案:

1)Eclipse-Package Explorer - 您的项目(Android) - 右键单击​​您的项目。

2)点击Android(屏幕左侧) - 现在您的屏幕可能如下所示 -

enter image description here

现在在屏幕底部,在“库”部分中,您可以直接添加所有库项目,而无需创建任何JAR。只需要在工作区中导入这些库项目,或者所有库项目都应该在eclipse中打开。

1)单击“添加”按钮,您将获得可用的库项目列表,从中进行选择并构建项目。

祝你好运..

答案 5 :(得分:0)

您必须转到要创建图书馆的项目的偏好设置,然后在Is Library子菜单中查看Android。然后,您可以尝试再次导入项目。

答案 6 :(得分:0)

我相信您正在寻找的是Eclipse中的“链接源”选项。从您的android项目中,选择项目并右键单击以选择“Build Path”&gt; “链接来源”。这将允许您在与Android应用程序开发相同的构建路径中访问您的Java库。

答案 7 :(得分:0)

如果你想要的只是引用Core项目代码,那么在Eclipse中你可以从Android项目中引用这个项目。 (“图书馆项目”功能仅适用于Android库项目,您在这里只有一个普通的Java项目,对吗?)

因此,在您的Package Explorer中,您拥有所有三个(Core,Android和Desktop)项目。右键单击EventKitchenAndroid,然后选择“属性”。选择Java Build Path - &gt;单击项目选项卡,然后单击添加...按钮。选择EventKitchenCore。转到订单&amp;导出选项卡并确保已选中EventKitchenCore项目,您可以继续使用。任何对EventKitchenCore源的更改都可以立即用于Android项目。

答案 8 :(得分:0)

这是我将库添加到项目中的方式

Project with library

第1阶段:创建图书馆计划

在图片上,您可以看到2个名为的项目和 ListSamples 正在使用库

要将项目作为库项目,请右键单击项目并选择属性

Setting Library

标记 IsLibrary 复选框以使其成为库

你可以在库项目的bin文件夹中看到.jar文件

Compiled Libary

现在创建了库项目

第2阶段:将库项目添加到Android项目

现在右键单击 android项目并选择其属性。然后单击库区域内的添加按钮并将库项目的路径设置为

enter image description here

enter image description here

然后会出现一个弹出窗口,显示您在eclipse中创建的目前处于活动状态的库项目列表(不会显示已关闭的库项目)

enter image description here

这里我只有一个项目,所以它列在这里

选择所需的所有库,然后单击确定。现在,库项目将被添加到您的项目中

enter image description here

在检查您的Android项目时,您可以看到项目的 .jar 文件已添加到您的Android项目中

enter image description here

注意: - 如果您在图书馆项目中使用Android支持包( android-support-v4.jar ),则无需在您的项目中再次添加Android项目。

您还可以使用ant将库添加到项目中。但我对此并不了解。