小编Jos*_*lor的帖子

如何排除文件被maven复制到爆炸的战争中

我有一个Java Web应用程序,其中我在标准webapp源目录(src/main/webapp)中有一些文件夹,我不想被复制到war(explodedpackaged)中.

我不希望这些文件复制的原因之一是我们在爆炸战争中的.js和.css文件上运行YUI JS&CSS最小化器和压缩器.我想要排除的文件在压缩阶段产生错误.我不希望他们加入战争的另一个原因是他们支持测试位于webapp中的单页JS应用程序(它们是依赖于node/的客户端JS测试脚本angular.js).

以下是相关部分POM.xml:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.1.1</version>
  <executions>
    <execution>
      <id>parent-resources</id>
      <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <overlays>
        </overlays>
        <webappDirectory>${project.build.directory}/${project.build.finalName}-work</webappDirectory>
      </configuration>
      <phase>generate-sources</phase>
      <goals>
        <goal>exploded</goal>
      </goals>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我尝试过,warSourceExcludes但未成功地使用它来排除某些路径,但无济于事.我的用法示例如下所示,其中client/是直接位于下方的文件夹src/main/webapp:

<configuration>
  ...
  <warSourceExcludes>
    <excludes>
      <exclude>
        client/
      </exclude>
    </excludes>
  </warSourceExcludes>
  ...
</configuration>
Run Code Online (Sandbox Code Playgroud)

将Web应用程序源目录中的某些路径和/或单个文件排除在爆炸战争中的正确方法是什么?

UPDATE

根据@maba的建议,我更新了配置如下:

<configuration>
  <failOnMissingWebXml>false</failOnMissingWebXml>
  <overlays>
  </overlays>                                 
  <webappDirectory>${project.build.directory}/${project.build.finalName}-work</webappDirectory>
  <warSourceExcludes>client/</warSourceExcludes>
</configuration>
Run Code Online (Sandbox Code Playgroud)

该文件夹client/仍然被复制.有任何想法吗?

war maven

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

如何在JPA 2.1中指定实体映射?

JPA 2.0的实体映射文件的正确起始标记是

<entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
    http://java.sun.com/xml/ns/persistence/orm_1_0.xsd">
Run Code Online (Sandbox Code Playgroud)

JPA 2.1需要更正哪些内容?

我试过了

<entity-mappings version="2.1" xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm">
Run Code Online (Sandbox Code Playgroud)

但是这给出了错误:

文档中没有引用语法约束(DTD或XML Schema).

java orm jpa

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

在unix bash脚本中组织代码

我习惯于面向对象的编程.现在,我刚刚开始通过linux学习unix bash脚本.

我有一个unix脚本.我想将其分解为"模块"或最好是类似于"更多","ls"等的程序,然后使用管道将我的所有程序链接在一起.例如,"一些输入"myProg1 | myProg2 | myProg3.

我想组织我的代码,让它看起来更整洁,而不是一个脚本.此外,它将很容易进行测试和开发.

是否可以这样做,特别是作为一个新手?

unix linux bash

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

函数调用后的花括号是什么?

在下面的代码中,Type type含义是什么,括号用于什么?

Type type = new TypeToken<List<String>>(){}.getType();
List<String> list = converter.fromJson(jsonStringArray, type ); 
Run Code Online (Sandbox Code Playgroud)

java

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

分页SPARQL结果

假设我有以下SPARQL查询:

SELECT DISTINCT ?result ?label
WHERE {
  ?result a database:Column .
  ?result rdfs:label ?label .
}
ORDER BY (LCASE(?label))
Run Code Online (Sandbox Code Playgroud)

我可以在查询中添加什么来将结果数限制为前10个?或者优选地,在第一个n×10结果之后的10个结果?我正在尝试实现分页以显示结果.

rdf sparql

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

这个宏有优势吗?

我正在阅读Peter Seibel的Practical Common Lisp.在第9章中,他正在通过创建单元测试框架来引导读者,并且他包含以下宏来确定列表是否仅由真实表达式组成:

(defmacro combine-results (&body forms)
  (let ((result (gensym)))
    `(let ((,result t))
       ,@(loop for form in forms collect `(unless ,form (setf ,result nil)))
       ,result)))
Run Code Online (Sandbox Code Playgroud)

我不清楚使用宏的优势在于什么 - 似乎以下内容会更清晰,并且对于动态值更有效:

(defun combine-results (&rest expressions)
  (let ((result t))
    (loop for expression in expressions do (unless expression (setf result nil)))
    result))
Run Code Online (Sandbox Code Playgroud)

宏的优点是,它在运行时对于在编译时扩展的任何调用更有效吗?或者它是一个范例的东西?或者这本书只是试图找借口在宏中练习不同的模式?

lisp macros common-lisp practical-common-lisp

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

要覆盖的属性和方法的Python命名约定

我在Python中有一些面向对象的代码,其中一些类要扩展以提供缺少的自定义代码位(模板方法模式,但也包含变量),只能由超类使用,而不是由使用它们的客户端代码.

对于这样的抽象是否有任何样式约定(或者是沉闷的,因为它们在超类中的实现会是pass或者引发NonImplemented异常)方法和属性?

我一直在浏览PEP-0008,它只提到将下划线添加到不打算由子类使用的私有成员.

python naming-conventions template-method-pattern

7
推荐指数
2
解决办法
7081
查看次数

检查Haskell中的列表是否平坦

The Little Schemer中有一个功能可以检查列表是否是平的:

(define lat?
  (lambda (l)
    (cond
     ((null? l) #t)
     ((atom? (car l)) (lat? (cdr l)))
     (else #f))))
Run Code Online (Sandbox Code Playgroud)

我正在尝试在Haskell中编写相同的递归函数,但没有成功:

is_lat :: [a] -> Bool
is_lat [] = True
is_lat ???
Run Code Online (Sandbox Code Playgroud)

我如何检查参数不在表单中[[a]]?换句话说,[1,2,3]是一个有效的输入,但[[1,3], [2,4]][[[1,2,3]]]没有.

我想在接受列表的递归函数中进一步使用它,以确保我只处理平面列表.

编辑:我看到人们因is_lat :: [a] -> Bool类型签名而感到困惑.我现在同意,我不应该在运行时检查类型.但是,是否可以在编译时检查类型?如何使该功能仅适用于平面列表?或者我应该彻底改变我的思维方式?

recursion haskell list pattern-matching the-little-schemer

7
推荐指数
3
解决办法
833
查看次数

对于rdfs:range,将xsd:string限制为[AZ]

如何将数据类型属性的范围指定为xsd:文字形式与[AZ]匹配的字符串?OWL限制对我来说不起作用,至少乍一看.有没有办法用正则表达式做到这一点,如果有的话,在哪里?

rdf owl rdfs

7
推荐指数
2
解决办法
1882
查看次数

理解C中的增量运算符

为什么C中的以下内容非法?

y = (w + x)++;
Run Code Online (Sandbox Code Playgroud)

根据我的书,这是非法的,但我不明白为什么.

c syntax lvalue

7
推荐指数
3
解决办法
586
查看次数