小编Pie*_*VDE的帖子

从Gradle构建脚本中提取常用方法

我有一个Gradle构建脚本(build.gradle),我在其中创建了一些任务.这些任务主要包括方法调用.被调用的方法也在构建脚本中.

现在,情况如下:

我正在创建相当数量的构建脚本,其中包含不同的任务,但使用原始脚本中的相同方法.因此,我想以某种方式提取这些"常用方法",因此我可以轻松地重复使用它们,而不是为我创建的每个新脚本复制它们.

如果Gradle是PHP,那么以下内容将是理想的:

//script content
...
require("common-methods.gradle");
...
//more script content
Run Code Online (Sandbox Code Playgroud)

但当然,这是不可能的.或者是吗?

无论如何,我怎样才能达到这个结果?这样做的最佳方法是什么?我已经阅读了Gradle文档,但我似乎无法确定哪种方法最简单,最适合这种方法.

提前致谢!


更新:

我设法在另一个文件中提取方法

(使用apply from: 'common-methods.gradle'),

所以结构如下:

parent/
      /build.gradle              // The original build script
      /common-methods.gradle     // The extracted methods
      /gradle.properties         // Properties used by the build script
Run Code Online (Sandbox Code Playgroud)

执行任务后build.gradle,我遇到了一个新问题:显然,方法在进入时无法识别common-methods.gradle.

关于如何解决这个问题的任何想法?

gradle build.gradle

76
推荐指数
3
解决办法
2万
查看次数

使用CSS自动调整浏览器大小的图像

当我调整浏览器窗口大小时,我希望所有(或只是一些)图像自动调整大小.我发现了以下代码 - 但它没有做任何事情.

HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    </head>
    <body>
        <div id="icons">
            <div id="contact">
                <img src="img/icon_contact.png" alt="" />
            </div>
            <img src="img/icon_links.png" alt="" />
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

CSS

body {
    font-family: Arial;
    font-size: 11px;
    color: #ffffff;
    background: #202020 url(../../img/body_back.jpg) no-repeat top center fixed;
    background-size: cover;
}

#icons {
    position: absolute;
    bottom: 22%;
    right: 8%;
    width: 400px;
    height: 80px;
    z-index: 8;
    transform: rotate(-57deg); 
    -ms-transform: rotate(-57deg); 
    -webkit-transform: rotate(-57deg); …
Run Code Online (Sandbox Code Playgroud)

css resize responsive-design

60
推荐指数
2
解决办法
36万
查看次数

NAMESPACE_ERR:尝试以对名称空间不正确的方式创建或更改对象

尝试从SOAP响应中检索SOAP正文,但是收到此错误:

NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.

Document doc = soapResMsg.getSOAPBody().extractContentAsDocument(); -- Exception is thrown here
org.dom4j.io.DOMReader d4Reader = new org.dom4j.io.DOMReader();
org.dom4j.Document d4doc = d4Reader.read(doc);
Run Code Online (Sandbox Code Playgroud)

使用Saaj1.4

对此有什么解决方法?

java xml webservice-client xalan saaj

18
推荐指数
5
解决办法
4万
查看次数

Twitter Bootstrap多个手风琴,但一次只有一个开放式面板

我的页面上有3个Twitter Bootstrap手风琴,每个都设置如下:

<div class="panel-group" id="accordion1">
    <div class="panel panel-default">
        <div class="panel-heading accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion1" data-target="#collapseOne1">
             <h4 class="panel-title">Collapsible Group Item #1</h4>
        </div>
        <div id="collapseOne1" class="panel-collapse collapse">
            <div class="panel-body">...</div>
        </div>
    </div>
    <div class="panel panel-default">
        <div class="panel-heading accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion1" data-target="#collapseTwo1">
             <h4 class="panel-title">Collapsible Group Item #2</h4>
        </div>
        <div id="collapseTwo1" class="panel-collapse collapse">
            <div class="panel-body">...</div>
        </div>
    </div>
    <div class="panel panel-default">
        <div class="panel-heading accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion1" data-target="#collapseThree1">
             <h4 class="panel-title">Collapsible Group Item #3</h4>
        </div>
        <div id="collapseThree1" class="panel-collapse collapse">
            <div class="panel-body">...</div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

id …

html css twitter-bootstrap

16
推荐指数
3
解决办法
3万
查看次数

Groovy XmlSlurper:在XML结构中查找元素

假设有以下XML结构:

<Data>
    <DataFieldText>
        <DataFieldName>Field #1</DataFieldName>
        <DataFieldValue>1</DataFieldValue>
    </DataFieldText>
    <DataFieldText>
        <DataFieldName>Field #2</DataFieldName>
        <DataFieldValue>2</DataFieldValue>
    </DataFieldText>
    <DataFieldText>
        <DataFieldName>Field #3</DataFieldName>
        <DataFieldValue>3</DataFieldValue>
    </DataFieldText>
</Data>
Run Code Online (Sandbox Code Playgroud)

使用Groovy XmlSlurper我需要执行以下操作:

Data找到包含元素中的值Field #1<DataFieldName>元素开始.如果找到则获取<DataFieldValue>属于同一级别的对应值.

xml groovy xmlslurper

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

如何向XML DOM对象添加名称空间前缀?

我正在尝试使用特定的命名空间构建XML文档.我想要生成的最终文档看起来像这样:

<m:documentObject xmlns:m="http://www.myschema.com">
    <sender>token</sender>
    <receiver>token</receiver>
    <payload>token</payload>
</m:documentObject>
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的.

Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element requestElement = document.createElementNS("http://www.myschema.com", "documentObject");

document.appendChild(requestElement);

Element sender = document.createElement("sender");
requestElement.appendChild(sender);     
Text senderText = document.createTextNode("Xmlsender");
sender.appendChild(senderText); 

Element receiver = document.createElement("receiver");
requestElement.appendChild(receiver);       
Text receiverText = document.createTextNode("Xmlreceiver");
receiver.appendChild(receiverText); 

Element payload = document.createElement("payload");
requestElement.appendChild(payload);        
Text payloadText = document.createTextNode("Xmlpayload");
payload.appendChild(payloadText);   

StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);

DOMSource source = new DOMSource(requestElement);

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); 
transformer.transform(source, result);

String xmlString = sw.toString();
System.out.println(xmlString) …
Run Code Online (Sandbox Code Playgroud)

java xml spring dom jaxb

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

XSLT根标记命名空间而不是元素属性命名空间

我有一个XSL文件来传输另一个XSL文件.我希望命名空间声明在根标记上,而不是在每个元素上重复!

这是我的样式表:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mynamespace="somenamespace" version="2.0">
    <xsl:output method="xml" omit-xml-declaration="no" standalone="yes" indent="yes" />
    <xsl:template match="myMatchedNode">
        <mynamespace:tag>Some text i want inserted into the xsl</mynamespace:tag>
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" /></xsl:copy>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

它输出这样的东西:

....

<mynamespace:tag xmlns:mynamespace="somenamespace">Some text i want inserted into the xsl</mynamespace:tag>

....
Run Code Online (Sandbox Code Playgroud)

如何强制命名空间声明到结果的根标记?!

xslt xml-namespaces

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

使div宽度自动适应其中的内容

我有一个div在其中一个table会撒谎.现在我希望div它的宽度自动设置为其中的宽度table.

例如:

<div>
  <table>
    <tr>
      <td>Hello</td>
      <td>World</td>
    </tr>
    <tr>
      <td>Sample</td>
      <td>Table</td>
    </tr>
  </table>
</div>
Run Code Online (Sandbox Code Playgroud)

我试着给float: left;它财产.它有效,但随后又产生了另一个问题.无论什么内容放在这个div放在空的空间右侧.

需要做什么?

html

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

将命名空间添加到已创建的XML文档中

我正在使用String值创建W3C Document对象.一旦我创建了Document对象,我就想在这个文档的根元素中添加一个命名空间.这是我目前的代码:

Document document = builder.parse(new InputSource(new StringReader(xmlString)));
document.getDocumentElement().setAttributeNS("http://com", "xmlns:ns2", "Test");
document.setPrefix("ns2");
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
Source src = new DOMSource(document);
Result dest = new StreamResult(new File("c:\\xmlFileName.xml"));
aTransformer.transform(src, dest);
Run Code Online (Sandbox Code Playgroud)

我用作输入的内容:

<product>
    <arg0>DDDDDD</arg0>
    <arg1>DDDD</arg1>
</product>
Run Code Online (Sandbox Code Playgroud)

输出应该是什么样的:

<ns2:product xmlns:ns2="http://com">
    <arg0>DDDDDD</arg0>
    <arg1>DDDD</arg1>
</ns2:product>
Run Code Online (Sandbox Code Playgroud)

我还需要将前缀值和命名空间添加到输入xml字符串中.如果我尝试上面的代码,我得到这个例外:

NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

java xml dom

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

在Gradle中强制执行任务

我写的一定数量的Gradle任务,不需要任何输入或输出.因此,UP-TO-DATE当我调用它们时,这些任务总是会得到状态.一个例子:

task backupFile(type: Copy) << {
    //Both parameters are read from the gradle.properties file
    from file(adjusting_file.replaceAll("\"", "")) 
    into file(backupDestinationDirectory + "/main/")

    println "[INFO] Main file backed up"
}
Run Code Online (Sandbox Code Playgroud)

这导致以下输出:

:gradle backupFile
:backupFile UP-TO-DATE
Run Code Online (Sandbox Code Playgroud)

有没有办法迫使(ny)任务执行,无论什么事情?如果有,是否也可以切换任务执行(例如告诉构建脚本运行哪些任务以及忽略哪些任务)?

我不能省略<<标签,因为这会使任务总是执行,这不是我想要的.

非常感谢您的投入.

gradle build.gradle

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