小编ams*_*ams的帖子

如何确定settings.gradle与bulid.gradle的内容?

我目前正在学习gradle,阅读一堆gradle书籍,并查看大型java项目的gradle构建脚本,如spring框架,hibernate和gradle项目本身,目的是了解使用gradle的最佳实践.

我注意到在gradle multiproject构建中有两个文件settings.gradle,build.gradle我的问题是.

  • settings.gradle绝对必需的多项目构建?可以滚动到build.gradle文件中吗?
  • 在我看过的一些开源项目中,我注意到settings.gradle实际上包含代码而不仅仅是设置,请参阅我在各种settings.gradle文件中找到的代码示例.应该放什么样的代码settings.gradlesettings.grdale对于build.gradle应该遵循的内容,是否有最佳实践?链接的开源项目是否违反了最佳实践规则?

从Spring Security Project中settings.gradle只需选择几行代码来自https://github.com/spring-projects/spring-security/blob/master/settings.gradle

include modules

modules.each {name ->
    def p = findProject(":${name}")
    p.name = "spring-security-${name}"
    p.buildFileName = "${name}.gradle"
}

include samples

samples.each {name ->
    def p = findProject(":${name}")
    def fullName = name.replaceAll('/','')
    p.name = "spring-security-samples-${fullName}"
    p.projectDir = new File(settingsDir, "samples/${name}");
    if(!p.buildFile.exists()) {
        def buildFile = fullName.replaceFirst("-xml","")
        p.buildFileName = "${buildFile}.gradle"
    }
}
Run Code Online (Sandbox Code Playgroud)

从gradle项目本身来自https://github.com/gradle/gradle/blob/master/settings.gradle的小片段 …

java gradle

6
推荐指数
1
解决办法
502
查看次数

ubuntu 和 ubuntu docker 镜像有什么区别?

例如,使用 docker 似乎可以在同一台机器上运行多个操作系统

docker run -it ubuntu:latest
root@09e498dae658:/#

docker run -it centos:latest
[root@8216b5141efc /]# 
Run Code Online (Sandbox Code Playgroud)

docker docs 声明 Linux 内核来自运行 linux 容器的主机。所以对于上面的命令,我在运行时得到相同的输出cat /proc/version

docker run -it ubuntu:latest
root@09e498dae658:/# cat /proc/version
Linux version 4.9.87-linuxkit-aufs (root@95fa5ec30613) (gcc version 6.4.0 (Alpine 6.4.0) ) #1 SMP Wed Mar 14 15:12:16 UTC 2018

docker run -it centos:latest
[root@8216b5141efc /]# cat /proc/version
Linux version 4.9.87-linuxkit-aufs (root@95fa5ec30613) (gcc version 6.4.0 (Alpine 6.4.0) ) #1 SMP Wed Mar 14 15:12:16 UTC 2018
Run Code Online (Sandbox Code Playgroud)

由于无论使用什么映像,内核都是相同的,因此认为 docker 能够在同一台机器上运行多个操作系统似乎是错误的。一些问题。

  • 执行docker run …

linux docker

6
推荐指数
1
解决办法
1358
查看次数

随机提供者的守护者映射解决了什么问题?

我试图了解terraform random 提供者的keeper功能的用例。我阅读了文档,但它不适合我。具体示例是什么,使用 keeper 地图的情况以及原因。下面复制的文档示例。

resource "random_id" "server" {
  keepers = {
    # Generate a new id each time we switch to a new AMI id
    ami_id = "${var.ami_id}"
  }

  byte_length = 8
}

resource "aws_instance" "server" {
  tags = {
    Name = "web-server ${random_id.server.hex}"
  }

  # Read the AMI id "through" the random_id resource to ensure that
  # both will change together.
  ami = "${random_id.server.keepers.ami_id}"

  # ... (other aws_instance arguments) ...
}
Run Code Online (Sandbox Code Playgroud)

terraform

6
推荐指数
1
解决办法
5381
查看次数

如何国际化车把+骨干视图?

我希望能够将骨干+ Handlebars应用程序国际化,但我不清楚最好的方法是什么.是否有任何针对骨干+车把视图国际化的特定最佳实践?

在服务器端,我使用SpringMVC并可以访问标准的java国际化设施.

localization spring-mvc internationalization backbone.js handlebars.js

5
推荐指数
1
解决办法
1581
查看次数

从JPQL查询返回JPA实体的子集作为映射数组?

在JPQL中,可以使用构造函数表达式来请求实体的子集,例如

SELECT NEW example.EmployeeDetails(e.name, e.salary, e.department.name) FROM Employee e
Run Code Online (Sandbox Code Playgroud)

它返回EmployeeDetails类型的对象列表

或使用投影选择,如

SELECT e.name, e.salary FROM Employee e
Run Code Online (Sandbox Code Playgroud)

返回Object[] result结果[0]是e.name,结果[1]是e.salary

有没有办法让JPA返回包含例如实体的子集的地图是有一个JPQL查询,可以返回 List<Map<String,Object>> result这样result.get(0).get("e.name")的回报e.nameresult.get(0).get('e.salary')收益e.salary

如果JPQL无法做到,那么HQL能做到吗?

hibernate jpa jpql

5
推荐指数
1
解决办法
8142
查看次数

如何让maven警告转换依赖版本不匹配?

在下面的示例Maven依赖项中,slf4j依赖项想要引入log4j 1.2.17并且log4j显式依赖项想要引入1.2.15.Maven将log4j解析为版本1.2.15但是,没有警告Maven打印出sl4j想要更高版本的log4j.

我怎样才能让Maven警告这些类型的冲突,而不是默默地采用1.2.15版本?

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.2</version>
</dependency>
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.15</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

maven-3 maven

5
推荐指数
1
解决办法
783
查看次数

什么时候应该明确定义maven中的转换依赖?

像spring这样的许多开源项目都包含多个模块,当在maven中添加这些模块作为依赖项时,我应该明确定义每个依赖项,或者让传递依赖项管理完成它的事情.例如,以下两种情况中的哪一种是最佳做法.

案例1:包括我想要的最高级别功能

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

案例2:将框架的每个部分都包含在显式依赖项中

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>
            .... other dependencies that are transitively resolved by maven
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.1.2.RELEASE</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

哪个是最佳实践案例1或案例2,为什么?

maven-3 maven

5
推荐指数
1
解决办法
836
查看次数

如何在eclipse中避免三次点击进入src/main/webapp?

我正在eclipse中设置一个maven web应用程序项目,maven喜欢将webapp资源放在src/main/webapp导航中,因为我必须单击三次以获取webapp内容.

  • 单击1展开src
  • 单击2展开main
  • 单击3展开webapp

导航到webapp所需的三个级别的单击示例

在典型的WTP eclipse项目中,只有WebContent并且是顶级文件夹,因此只需要点击一下即可进入.

是否有eclipse或m2e技巧使webapp显示为项目下的顶级元素.

eclipse m2eclipse eclipse-wtp maven m2e

5
推荐指数
2
解决办法
1203
查看次数

如何解读M2E中的生命周期映射对话框?

在eclipse M2E 1.2.0插件中,当我得到一个maven项目属性时,有一个生命周期映射对话框,这个对话框中的各个列是什么意思。我在网上搜索过解释,但没有找到任何清楚地解释各列含义的内容。

  • 每列是什么意思?
  • 为什么剂量配置器在 Mapping 中多次出现,例如在 compiler:compile
  • 来源栏中的不同来源是什么意思?

在此处输入图片说明

更新:此链接有关生命周期映射的良好信息https://docs.sonatype.org/display/M2ECLIPSE/Customizable+build+lifecycle+mapping+for+m2e+extensions+developers#Customizablebuildlifecyclemappingform2eextensionsdevelopers-Introduction

m2eclipse maven-3 maven m2e

5
推荐指数
1
解决办法
676
查看次数

处理 JPA 关系引起的循环引用的策略?

我试图通过打包到单独的 jar 中的功能将我的应用程序分区为模块,例如 feature-a.jar、feature-b.jar 等。

单个功能 jar(例如 feature-a.jar)应包含功能 a 的所有代码,包括 jpa 实体、业务逻辑、rest api、单元测试、集成测试...等。

我遇到的问题是 JPA 实体之间的双向关系导致 jar 文件之间的循环引用。例如,客户实体应位于 customer.jar 中,订单应位于 order.jar 中,但客户引用订单,订单引用客户,因此很难将它们拆分为单独的 jars/eclipse 项目。

我看到的用于处理 JPA 实体中的循环依赖关系的选项:

  • 选项 1:将所有实体放入一个 jar/一个项目中
  • 选项 2:不要映射某些双向关系,以避免项目之间的循环依赖。

问题:

  • 您使用什么规则/原则来决定何时进行双向映射或不进行双向映射?
  • 您是否能够按功能将 jpa 实体分解为自己的项目/jar 如果可以的话,您如何避免循环依赖问题?

java packaging jpa module

5
推荐指数
1
解决办法
2675
查看次数