我在构建简单应用时遇到问题。它包含3个模块,ejb,休息和耳朵,其中应包括休息。为了实现它,我在下面编写了build.gradle。但我还是有问题。内置耳朵看起来像:
ear-1.0.ear
|--ejbs-1.0.jar
|--rest-1.0.jar
|--lib
|--ejbs-1.0.jar
|--other libs..
如您所见,我在这里重复了ejbs-1.0.jar
。这不是我想要的东西所以我试图解决这个问题。我尝试过在网上找到的两种方法,但它们都没有用。第一个(带有标签1的注释)排除了进入lib目录的所有rest
依赖项。第二个(标签2)做了同样的事情,但也将rest-1.0.jar
包含在lib中,使其更糟糕。
现在我不知道如何编写我的build.gradle
所以它将子项目中的jar放在根目录中,并将它们的依赖项放在lib目录中。我也尝试用标签3写一些类似注释的内容,但这会使脚本失败。是否有简单的方法将其排除在类似语法之外?
project(":ejbs") {
apply plugin: "java"
dependencies {
compile group: 'javax.ejb', name: 'javax.ejb-api', version: '3.2'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.2'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.2'
}
}
project(":rest") {
apply plugin: "java"
dependencies {
compile project(':ejbs')
compile group: 'javax.ejb', name: 'javax.ejb-api', version: '3.2'
compile group: 'javax.ws.rs', name: 'jsr311-api', version: '0.11'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.2'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.2'
}
}
project(":ear") {
apply plugin: "java"
apply plugin: "ear"
dependencies {
//1: def nonTransitive = {transitive = false}
deploy project(":ejbs")
deploy project(":rest")
earlib project(path:":ejbs", configuration:"compile")
earlib project(path:":rest", configuration:"compile")//1: , nonTransitive
//2: add('earlib', project(':rest')) {
// transitive = false
//}
//3: earlib project(path:":rest", configuration:"compile") {
// exlude project(':ejbs')
//}
}
}
答案 0 :(得分:0)
我终于找到了解决方案。我是这样做的:
Func<string, User> CreateUser = (string email) =>
{
User user = context.Users.SingleOrDefault(u => u.UserName == email);
// ...
return user;
};
{
// New scope - user is not contained in a shared scope. This is OK.
var user = CreateUser("email@email.email");
userManager.AddToRole(user.Id, "Administrator");
}