标签: multi-project

你如何处理trac中的多个(重叠)项目?

我们正在使用trac并且对它非常满意.但是,开箱即用,trac最适合单项目环境.我有兴趣了解人们采取的各种方法,以使其与多个项目一起工作,以及他们的经验.有推荐的插件吗?任何补丁,调整或诸如此类的东西?您是否甚至可以使用完全不同的错误跟踪系统来提供所有trac的功能以及多项目支持?

我们最近开始自己管理第二个项目,这通常可以正常工作但也有一些缺点,特别是在两个项目重叠的情况下,因为我们编写的公共库代码在两个项目中都使用.你怎么处理这个?

(我将附上我们自己当前的方法作为这篇文章的答案.)

trac multi-project

11
推荐指数
1
解决办法
4590
查看次数

使用Gradle的Eclipse多项目中的访问限制

我在Eclipse中有一个包含多个子项目的Gradle项目.我目前有子项目A,B和C.

项目A应该可以访问项目B.项目B应该可以访问项目C.但是项目A 应该访问项目C.

A -> B, B -> C, but not A -> C
Run Code Online (Sandbox Code Playgroud)

我可以通过在Project A中使用java示例类来尝试使用Project C中的类来轻松地测试它.

我使用Gradle在主build.gradle文件中使用以下设置并使用transitive属性实现了这一点:

project(':projectA') {
    dependencies {
        compile project(':projectB'), {
            transitive = false
        }
    }
}

project(':projectB') {
    dependencies {
        compile project(':projectC'), {
            transitive = false
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

compileJava在Project A的示例类上运行Gradle 会给出正确的错误消息.我想将此错误作为Eclipse中的编译错误.我还能够以所需关系保持的方式手动配置类路径,但Gradle Refresh/Rebuild再次重置类路径.

是否可以使用Gradle的Java编译器而不是Eclipse编译器?或者我应该在进行Gradle Refresh/Rebuild时影响类路径文件?可能有不同的解决方案吗?

我想知道这种情况的首选方法是什么.谢谢!

java eclipse compilation multi-project gradle

11
推荐指数
1
解决办法
494
查看次数

Gradle多项目定义对根项目的依赖

我有一个多项目gradle构建,以这种方式配置:

root
  |
  |---- projectA
  |
  |---- projectB
Run Code Online (Sandbox Code Playgroud)

我想在root/build.gradle所有嵌套项目的依赖项中声明,这是文件:

subprojects {
      version = '1.0-SNAPSHOT'
      repositories {
           mavenLocal()
           mavenCentral()
           maven {
               url 'https://repository.jboss.org/nexus/content/groups/public-jboss/'
           }
       }
}

allprojects {
    dependencies {
        compile 'org.projectlombok:lombok:1.12.2'
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我执行构建时,我有:

* What went wrong:
Run Code Online (Sandbox Code Playgroud)

评估根项目"代码"时出现问题.

No signature of method:
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() is applicable for argument types: (java.lang.String) values: [org.projectlombok:lombok:1.12.2]
Run Code Online (Sandbox Code Playgroud)

可能的解决方案:module(java.lang.Object)

我做错了什么?

dependencies multi-project gradle

10
推荐指数
2
解决办法
8908
查看次数

SBT构建,在Compile上运行子项目的主类并运行

我有一个简单的构建工具Multi-Project问题...

我有以下目录结构代表我的java sbt项目:

/project1
/project2
/project3
Run Code Online (Sandbox Code Playgroud)

所以所有项目共享一个共同的直接父文件夹.项目1的build.sbt中引用了项目2和3,如下所示:

.dependsOn(project2, project3)
.aggregate(project2, project3)

lazy val project2 = ProjectRef(file("../project2"), "project2")

lazy val project3 = ProjectRef(file("../project3"), "project3")
Run Code Online (Sandbox Code Playgroud)

这样,project1和其他人之间存在依赖关系.

到目前为止一切都很好,一切正常.

但是现在我想在执行任何其他操作之前从project2执行main方法.当我从父(project1)执行"运行"任务时,我希望project2中的特定类执行其主要方法.我该怎么做呢?sbt文档解释说" 聚合意味着在聚合项目上运行任务也将在聚合项目上运行它. ":http: //www.scala-sbt.org/0.13.5/docs/Getting-Started/Multi -Project.html#聚合

我没有看到projet2上的主要课程已被执行.我还将它添加到project2的build.sbt中:

mainClass in (Compile, run) := Some("Main")
Run Code Online (Sandbox Code Playgroud)

该项目的目标是在Compiletime和运行时生成代码.Project2的工作是生成Java和Javascript代码.可以在构建其他项目之前生成.

那可能吗?如果没有,我将不得不独立于其他项目运行project2.

=]

java scala multi-project subproject sbt

9
推荐指数
1
解决办法
1797
查看次数

Gradle:如何在多项目构建中共享常见任务?

在我的根build.gradle文件中,我为所有组件应用常见任务:

apply from: rootProject.file('common/component.gradle')
Run Code Online (Sandbox Code Playgroud)

在子项目中我定义了componentTitle:

ext {
    componentTitle = 'application1'
 }
Run Code Online (Sandbox Code Playgroud)

component.gradle:

jar {
    manifest {
        attributes 'Implementation-Title': componentTitle
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

A problem occurred evaluating script.
> No such property: componentTitle for class: org.gradle.api.java.archives.internal.DefaultManifest
Run Code Online (Sandbox Code Playgroud)

multi-project gradle

9
推荐指数
1
解决办法
1234
查看次数

从实体框架绑定数据源时,WPF设计器不会加载

编辑:我已经提交了一份错误报告,微软已经承认这是一个错误.目前在修复时没有ETA.

错误报告: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=386982

官方反馈: http://social.msdn.microsoft.com/Forums/en-US/vswpfdesigner/thread/ca3cac55-c1de-4e65-9543-e95484ad78c5/

我有一个以下列方式构建的解决方案.

  • 实体框架项目
  • 数据访问项目
  • WPF应用程序项目

WPF应用程序调用数据访问项目中的方法,该方法从实体框架项目获取数据并将其绑定到XAML中.

例如

<UserControl.Resources>
      <ObjectDataProvider x:Key="tokens" 
                            ObjectType="{x:Type ctl:MerchantNetworkController}" 
                            MethodName="ListMerchantNetworkTokens" />
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我从数据访问项目调用函数时,VS 2008设计器不会加载,但我可以编译并运行解决方案.

当我在XAML后面的代码中创建一个函数并使用它而不是数据访问项目时它工作正常,设计师实际加载.当我调用数据访问项目时,就会出现问题.

我从设计师那里得到的错误信息是

"The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid"
Run Code Online (Sandbox Code Playgroud)

我在WPF项目的App.config和数据访问项目中有以下连接字符串

<add name="Entities"
     connectionString="metadata=C:\EFModel\Model.csdl|C:\EFModel\Model.ssdl|C:\EFModel\Model.msl;
         provider=System.Data.SqlClient;
         provider connection string='Data Source=localhost;Initial Catalog=database;Persist Security Info=True;User ID=username;Password=password;MultipleActiveResultSets=True'"
         providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

我使用VS 2008 sp1,.NET 3.5 sp1,Vista 32位

.net wpf entity-framework multi-project

8
推荐指数
1
解决办法
2202
查看次数

如何组装一个多项目的ant构建系统

在我的新演出中,他们使用Ant并且不能被说服移动到Maven.我到处寻找一个如何组装多项目蚂蚁构建系统的好例子.apache站点不足.我正在寻找最佳实践:

  • 自动构建属于项目依赖项的本地项目
  • 将项目中的工件分享给他们的家属
  • 导出项目的依赖项和生成的工件(jar)以供依赖项目继承
  • 在项目之间共享第三方依赖项

我敢肯定,如果不使用常春藤,我可以做到这一切 - 人们在常春藤之前做了什么?我真的不想设置公司存储库或依赖外部存储库 - 这里的工程师真的反对这一点,并将所有第三方罐子都检入src控件.

任何人都可以指出一个多项目蚂蚁构建的开源示例吗?

ant dependencies build multi-project ivy

8
推荐指数
1
解决办法
8197
查看次数

Gradle:如何在多项目脚本中从另一个项目复制文件夹?

我有一个多项目脚本:

dependencies {
    compile '...'
    ...

    compile project(':component1')
    runtime project(':component2')
}
Run Code Online (Sandbox Code Playgroud)

我需要将文件夹"bin"从component1和component2复制到当前项目的文件夹"bin"中.

更新:我需要这个能够在Eclipse中"运行为" - >"在服务器上运行".每个项目都有Java代码和Web UI文件,并且依赖于工作区中的其他项目."部署程序集"不允许从另一个项目复制已编译的类.

dependencies multi-project gradle

8
推荐指数
1
解决办法
7571
查看次数

如何在没有相同项目根的情况下进行sbt-(本地)多项目?

我想在intellij中同时处理多个sbt项目.项目是"单向依赖",意味着一个是(可重用)核心,另一个是构建在该核心上的实际应用程序.两者目前都在开发中.

我希望核心驻留在除应用程序之外的另一个基本/根目录中,因此:

- /core
-- build.sbt

- /application
-- build.sbt
Run Code Online (Sandbox Code Playgroud)

我希望能够

  1. 在同一个IntelliJ窗口中修改两个项目
  2. 将两个项目都保留在各自的文件夹中(周围没有包装文件夹!).Core也将用于其他应用程序,这些应用程序不是当前"应用程序"的兄弟,所以我不希望它们位于同一个根文件夹下!

我尝试了什么,到目前为止我发现了哪些问题:

设置如

lazy val core = project.in(file("../core"))
lazy val application = project.in(file(".")).dependsOn(core)
Run Code Online (Sandbox Code Playgroud)

因为sbt断言多项目设置中的每个项目的目录都包含在同一个构建根目录中,所以不起作用:

sbt java.lang.AssertionError:断言失败:构建根/应用程序中不包含目录/核心

设置如

lazy val core = RootProject(file("../core"))
lazy val application = project.in(file(".")).dependsOn(core)
Run Code Online (Sandbox Code Playgroud)

不是解决方案,因为:

  1. 不能在一个IntelliJ窗口中同时拥有这两个项目
  2. 奇怪的是,核心类在应用程序中找不到,尽管导入工作正在进行中

现在我是一个新手,我猜(并希望)必须有一个解决这个问题的方法.我不可能是唯一一个想要在没有包装层的情况下分离我的项目并且仍然可以在我选择的IDE中修改它们的人.

编辑:

@ OlegRudenko的解决方案对我来说是半工作的.由于core还有一些依赖项,我无法编译或使用它application.

coreapplication引入一些依赖项,例如Logger,当我进入并尝试使用core编译器的组件时,我会尖叫,因为它无法找到依赖项core(例如记录器).

另外,core拉入例如lwjgl并且我想使用它的一些组件application,没有机会,因为它无法找到该依赖项的包core.

现在我所做的是一个hacky非解决方案.我只是开发都coreapplication在同一的IntelliJ项目,并保持git的回购专用.

这根本不是一个解决方案,因为我想在开源core时暂时application关闭源代码,我仍然想同时处理这两个问题,改进 …

dependencies scala intellij-idea multi-project sbt

8
推荐指数
2
解决办法
2272
查看次数

Gradle:在 Eclipse 类路径中可见子项目的依赖项

我最近在我们现有的 Web 项目中添加了 Gradle 性质。该项目本身是一个分层的java项目

Common - DataAccess - Business - Web
                              \- Batch
Run Code Online (Sandbox Code Playgroud)

在我们使用之前,我们手动管理了项目的依赖关系,只将必要的库添加到每个项目中。

为了支持我们的项目结构,我创建了一个 gradle 多项目:

root
 +-- build.gradle
 +-- settings.gradle
 +-- Common
      +-- build.gradle
 +-- DataAccess
      +-- build.gradle
 +-- Business
      +-- build.gradle
 +-- Web
      +-- build.gradle
 +-- Batch
      +-- build.gradle
Run Code Online (Sandbox Code Playgroud)

这些文件基本上看起来像这样(当然是缩短的)

通用 -> build.gradle

    [...]
    implementation 'javax.money:money-api:1.0.3'
    implementation 'org.slf4j:slf4j-log4j12:1.7.5'
    testImplementation 'org.springframework:spring-test:4.3.13.RELEASE'
    [...]
Run Code Online (Sandbox Code Playgroud)

数据访问 -> build.gradle

dependencies {
    [...]
    api project(':Common')
    implementation 'javax.money:money-api:1.0.3'
    implementation 'org.slf4j:slf4j-log4j12:1.7.5'
    implementation 'org.hibernate:hibernate-core:5.2.14.Final'
    implementation 'org.hibernate:hibernate-jcache:5.2.14.Final'
    implementation 'org.springframework.data:spring-data-jpa:1.11.9.RELEASE'
    testImplementation 'org.springframework:spring-test:4.3.13.RELEASE'
    [...]
}
Run Code Online (Sandbox Code Playgroud)

业务 -> build.gradle …

java eclipse multi-project gradle

7
推荐指数
0
解决办法
1064
查看次数