Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 与tycho共享eclipse存储库和eclipse插件的产品文件夹_Xml_Eclipse_Maven_Tycho - Fatal编程技术网

Xml 与tycho共享eclipse存储库和eclipse插件的产品文件夹

Xml 与tycho共享eclipse存储库和eclipse插件的产品文件夹,xml,eclipse,maven,tycho,Xml,Eclipse,Maven,Tycho,我简化了项目结构我必须问这些问题,我的根文件夹的结构如下: 我的父母 pom.xml 我的项目产品 pom.xml pom-product.xml my.project.parent中的pom.xml是我第一次使用mvn clean install编译的根pom 之后,我打开my.project.product,通过相对路径链接到my.project.parent/pom.xml 我的问题是,使用tycho,我需要My.project.product打包类型必须是eclipse插件,

我简化了项目结构我必须问这些问题,我的根文件夹的结构如下:

  • 我的父母
    • pom.xml
  • 我的项目产品
    • pom.xml
    • pom-product.xml
my.project.parent
中的pom.xml是我第一次使用
mvn clean install编译的根pom

之后,我打开
my.project.product
,通过相对路径链接到
my.project.parent/pom.xml

我的问题是,使用tycho,我需要
My.project.product
打包类型必须是
eclipse插件
,同时也是
eclipse存储库

实际上,我使用
mvn install-f pom product
编译my.project.product,它一次运行两个pom

在tycho中只使用一个
pom.xml
就可以做同样的事情吗

--更新--


您可以在这里找到软件项目:github.com/gama-platform/gama。
msi.gama.application
包含双
pom.xml
。一个用于使用
eclipse存储库
(软件的可执行文件)生成产品,另一个用于使用
eclipse插件
(作为软件扩展开发人员的依赖项)生成插件


这就是为什么msi.gama.application是一个插件和一个存储库(生成软件的可执行文件)

我不熟悉Tycho,但基于,
eclipse plugin
打包生成一个插件,而
eclipserepository
打包会生成更新站点,其中可能包含多个可能不同版本的插件

在Maven中,拥有一个将多个工件捆绑到一个分发包中的“分发”项目是非常正常的概念。这似乎与eclipse存储库的打包非常相似,即使在您的情况下,它只是一个捆绑的项目。 这意味着您需要以下项目:

  • 带有
    eclipse插件的产品项目
    打包
  • 包含
    eclipse存储库的分发项目
    打包并依赖于第一个存储库(因为它基本上捆绑了第一个存储库)
  • (可选)聚合器项目,包括前两个as模块,可轻松一次构建这两个模块。您还可以将此聚合器项目指定为前两个项目的父项目,并在其中放置公共配置(如有必要)

  • 实际结构对Maven本身没有多大影响,但对您使用的IDE可能有影响。最直观的方法是将aggregator/parent pom.xml放在根文件夹中,并将其他每个项目放在各自的子文件夹中。

    我不熟悉Tycho,但基于,
    eclipse插件
    打包生成一个插件,而
    eclipserepository
    打包会生成更新站点,其中可能包含多个可能不同版本的插件

    在Maven中,拥有一个将多个工件捆绑到一个分发包中的“分发”项目是非常正常的概念。这似乎与eclipse存储库的打包非常相似,即使在您的情况下,它只是一个捆绑的项目。 这意味着您需要以下项目:

  • 带有
    eclipse插件的产品项目
    打包
  • 包含
    eclipse存储库的分发项目
    打包并依赖于第一个存储库(因为它基本上捆绑了第一个存储库)
  • (可选)聚合器项目,包括前两个as模块,可轻松一次构建这两个模块。您还可以将此聚合器项目指定为前两个项目的父项目,并在其中放置公共配置(如有必要)

  • 实际结构对Maven本身没有多大影响,但对您使用的IDE可能有影响。最直观的方法是将aggregator/parent pom.xml放在根文件夹中,并将其他每个项目放在各自的子文件夹中。

    我不确定您想做什么,但为什么my.project.product packaging type需要是eclipse插件,同时也是一个eclipse存储库?产品项目也可以是扩展开发人员的插件。它代表了软件的核心。我不知道你想做什么,但为什么my.project.product packaging type需要是一个eclipse插件,同时也是一个eclipse存储库?产品项目也可以是扩展开发人员的插件。它代表了软件的核心。请注意,如果您计划在更新包(eclipse存储库)中捆绑的不仅仅是此插件,那么您应该将此更新包生成与插件生成分离。您可以使用不同的完全独立的maven项目生成插件,然后使用另一个完全独立的项目将所有插件捆绑在一起(让maven使用依赖机制从maven存储库中检索它们)。您可以在这里找到软件项目:msi.gama.application包含double pom.xml。一个是使用
    eclipse repository
    (软件的可执行文件)生成产品,另一个是使用
    eclipse plugin
    (需要依赖于软件扩展的开发人员)生成插件。这就是为什么msi.gama.application是一个插件和一个存储库(生成软件的可执行文件)对不起,我不熟悉第谷,所以我不能比这更准确。您可以尝试将msi.gama.application子模块分为两部分:包含插件所需一切的插件子模块和包含其他一切的存储库子模块。然后让repository子模块指定插件子模块上的maven依赖项。根据存储库上的Tycho文档,应该选择这样一个插件