提交 ce2be812 编写于 作者: K Kohsuke Kawaguchi

Ant support is moved into its own plugin

上级 b3bb9daa
/*
* The MIT License
*
* Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts, Yahoo! Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package hudson.tasks;
import hudson.CopyOnWrite;
import hudson.EnvVars;
import hudson.Extension;
import hudson.FilePath;
import hudson.Functions;
import hudson.Launcher;
import hudson.Util;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.BuildListener;
import hudson.model.Computer;
import hudson.model.EnvironmentSpecific;
import jenkins.model.Jenkins;
import hudson.model.Node;
import hudson.model.TaskListener;
import hudson.remoting.Callable;
import hudson.slaves.NodeSpecific;
import hudson.tasks._ant.AntConsoleAnnotator;
import hudson.tools.ToolDescriptor;
import hudson.tools.ToolInstallation;
import hudson.tools.DownloadFromUrlInstaller;
import hudson.tools.ToolInstaller;
import hudson.tools.ToolProperty;
import hudson.util.ArgumentListBuilder;
import hudson.util.VariableResolver;
import hudson.util.FormValidation;
import hudson.util.XStream2;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.QueryParameter;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Properties;
import java.util.List;
import java.util.Collections;
import java.util.Set;
/**
* Ant launcher.
*
* @author Kohsuke Kawaguchi
*/
public class Ant extends Builder {
/**
* The targets, properties, and other Ant options.
* Either separated by whitespace or newline.
*/
private final String targets;
/**
* Identifies {@link AntInstallation} to be used.
*/
private final String antName;
/**
* ANT_OPTS if not null.
*/
private final String antOpts;
/**
* Optional build script path relative to the workspace.
* Used for the Ant '-f' option.
*/
private final String buildFile;
/**
* Optional properties to be passed to Ant. Follows {@link Properties} syntax.
*/
private final String properties;
@DataBoundConstructor
public Ant(String targets,String antName, String antOpts, String buildFile, String properties) {
this.targets = targets;
this.antName = antName;
this.antOpts = Util.fixEmptyAndTrim(antOpts);
this.buildFile = Util.fixEmptyAndTrim(buildFile);
this.properties = Util.fixEmptyAndTrim(properties);
}
public String getBuildFile() {
return buildFile;
}
public String getProperties() {
return properties;
}
public String getTargets() {
return targets;
}
/**
* Gets the Ant to invoke,
* or null to invoke the default one.
*/
public AntInstallation getAnt() {
for( AntInstallation i : getDescriptor().getInstallations() ) {
if(antName!=null && antName.equals(i.getName()))
return i;
}
return null;
}
/**
* Gets the ANT_OPTS parameter, or null.
*/
public String getAntOpts() {
return antOpts;
}
@Override
public boolean perform(AbstractBuild<?,?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
ArgumentListBuilder args = new ArgumentListBuilder();
EnvVars env = build.getEnvironment(listener);
env.overrideAll(build.getBuildVariables());
AntInstallation ai = getAnt();
if(ai==null) {
args.add(launcher.isUnix() ? "ant" : "ant.bat");
} else {
ai = ai.forNode(Computer.currentComputer().getNode(), listener);
ai = ai.forEnvironment(env);
String exe = ai.getExecutable(launcher);
if (exe==null) {
listener.fatalError(Messages.Ant_ExecutableNotFound(ai.getName()));
return false;
}
args.add(exe);
}
VariableResolver<String> vr = new VariableResolver.ByMap<String>(env);
String buildFile = env.expand(this.buildFile);
String targets = env.expand(this.targets);
FilePath buildFilePath = buildFilePath(build.getModuleRoot(), buildFile, targets);
if(!buildFilePath.exists()) {
// because of the poor choice of getModuleRoot() with CVS/Subversion, people often get confused
// with where the build file path is relative to. Now it's too late to change this behavior
// due to compatibility issue, but at least we can make this less painful by looking for errors
// and diagnosing it nicely. See HUDSON-1782
// first check if this appears to be a valid relative path from workspace root
FilePath buildFilePath2 = buildFilePath(build.getWorkspace(), buildFile, targets);
if(buildFilePath2.exists()) {
// This must be what the user meant. Let it continue.
buildFilePath = buildFilePath2;
} else {
// neither file exists. So this now really does look like an error.
listener.fatalError("Unable to find build script at "+buildFilePath);
return false;
}
}
if(buildFile!=null) {
args.add("-file", buildFilePath.getName());
}
Set<String> sensitiveVars = build.getSensitiveBuildVariables();
args.addKeyValuePairs("-D",build.getBuildVariables(),sensitiveVars);
args.addKeyValuePairsFromPropertyString("-D",properties,vr,sensitiveVars);
args.addTokenized(targets.replaceAll("[\t\r\n]+"," "));
if(ai!=null)
env.put("ANT_HOME",ai.getHome());
if(antOpts!=null)
env.put("ANT_OPTS",env.expand(antOpts));
if(!launcher.isUnix()) {
args = args.toWindowsCommand();
// For some reason, ant on windows rejects empty parameters but unix does not.
// Add quotes for any empty parameter values:
List<String> newArgs = new ArrayList<String>(args.toList());
newArgs.set(newArgs.size() - 1, newArgs.get(newArgs.size() - 1).replaceAll(
"(?<= )(-D[^\" ]+)= ", "$1=\"\" "));
args = new ArgumentListBuilder(newArgs.toArray(new String[newArgs.size()]));
}
long startTime = System.currentTimeMillis();
try {
AntConsoleAnnotator aca = new AntConsoleAnnotator(listener.getLogger(),build.getCharset());
int r;
try {
r = launcher.launch().cmds(args).envs(env).stdout(aca).pwd(buildFilePath.getParent()).join();
} finally {
aca.forceEol();
}
return r==0;
} catch (IOException e) {
Util.displayIOException(e,listener);
String errorMessage = Messages.Ant_ExecFailed();
if(ai==null && (System.currentTimeMillis()-startTime)<1000) {
if(getDescriptor().getInstallations()==null)
// looks like the user didn't configure any Ant installation
errorMessage += Messages.Ant_GlobalConfigNeeded();
else
// There are Ant installations configured but the project didn't pick it
errorMessage += Messages.Ant_ProjectConfigNeeded();
}
e.printStackTrace( listener.fatalError(errorMessage) );
return false;
}
}
private static FilePath buildFilePath(FilePath base, String buildFile, String targets) {
if(buildFile!=null) return base.child(buildFile);
// some users specify the -f option in the targets field, so take that into account as well.
// see
String[] tokens = Util.tokenize(targets);
for (int i = 0; i<tokens.length-1; i++) {
String a = tokens[i];
if(a.equals("-f") || a.equals("-file") || a.equals("-buildfile"))
return base.child(tokens[i+1]);
}
return base.child("build.xml");
}
@Override
public DescriptorImpl getDescriptor() {
return (DescriptorImpl)super.getDescriptor();
}
@Extension
public static class DescriptorImpl extends BuildStepDescriptor<Builder> {
@CopyOnWrite
private volatile AntInstallation[] installations = new AntInstallation[0];
public DescriptorImpl() {
load();
}
protected DescriptorImpl(Class<? extends Ant> clazz) {
super(clazz);
}
/**
* Obtains the {@link AntInstallation.DescriptorImpl} instance.
*/
public AntInstallation.DescriptorImpl getToolDescriptor() {
return ToolInstallation.all().get(AntInstallation.DescriptorImpl.class);
}
public boolean isApplicable(Class<? extends AbstractProject> jobType) {
return true;
}
@Override
public String getHelpFile() {
return "/help/project-config/ant.html";
}
public String getDisplayName() {
return Messages.Ant_DisplayName();
}
public AntInstallation[] getInstallations() {
return installations;
}
@Override
public Ant newInstance(StaplerRequest req, JSONObject formData) throws FormException {
return (Ant)req.bindJSON(clazz,formData);
}
public void setInstallations(AntInstallation... antInstallations) {
this.installations = antInstallations;
save();
}
}
/**
* Represents the Ant installation on the system.
*/
public static final class AntInstallation extends ToolInstallation implements
EnvironmentSpecific<AntInstallation>, NodeSpecific<AntInstallation> {
// to remain backward compatible with earlier Hudson that stored this field here.
@Deprecated
private transient String antHome;
@DataBoundConstructor
public AntInstallation(String name, String home, List<? extends ToolProperty<?>> properties) {
super(name, launderHome(home), properties);
}
/**
* @deprecated as of 1.308
* Use {@link #AntInstallation(String, String, List)}
*/
public AntInstallation(String name, String home) {
this(name,home,Collections.<ToolProperty<?>>emptyList());
}
private static String launderHome(String home) {
if(home.endsWith("/") || home.endsWith("\\")) {
// see https://issues.apache.org/bugzilla/show_bug.cgi?id=26947
// Ant doesn't like the trailing slash, especially on Windows
return home.substring(0,home.length()-1);
} else {
return home;
}
}
/**
* install directory.
*
* @deprecated as of 1.307. Use {@link #getHome()}.
*/
public String getAntHome() {
return getHome();
}
/**
* Gets the executable path of this Ant on the given target system.
*/
public String getExecutable(Launcher launcher) throws IOException, InterruptedException {
return launcher.getChannel().call(new Callable<String,IOException>() {
public String call() throws IOException {
File exe = getExeFile();
if(exe.exists())
return exe.getPath();
return null;
}
});
}
private File getExeFile() {
String execName = Functions.isWindows() ? "ant.bat" : "ant";
String home = Util.replaceMacro(getHome(), EnvVars.masterEnvVars);
return new File(home,"bin/"+execName);
}
/**
* Returns true if the executable exists.
*/
public boolean getExists() throws IOException, InterruptedException {
return getExecutable(new Launcher.LocalLauncher(TaskListener.NULL))!=null;
}
private static final long serialVersionUID = 1L;
public AntInstallation forEnvironment(EnvVars environment) {
return new AntInstallation(getName(), environment.expand(getHome()), getProperties().toList());
}
public AntInstallation forNode(Node node, TaskListener log) throws IOException, InterruptedException {
return new AntInstallation(getName(), translateFor(node, log), getProperties().toList());
}
@Extension
public static class DescriptorImpl extends ToolDescriptor<AntInstallation> {
@Override
public String getDisplayName() {
return "Ant";
}
// for compatibility reasons, the persistence is done by Ant.DescriptorImpl
@Override
public AntInstallation[] getInstallations() {
return Jenkins.getInstance().getDescriptorByType(Ant.DescriptorImpl.class).getInstallations();
}
@Override
public void setInstallations(AntInstallation... installations) {
Jenkins.getInstance().getDescriptorByType(Ant.DescriptorImpl.class).setInstallations(installations);
}
@Override
public List<? extends ToolInstaller> getDefaultInstallers() {
return Collections.singletonList(new AntInstaller(null));
}
/**
* Checks if the ANT_HOME is valid.
*/
public FormValidation doCheckHome(@QueryParameter File value) {
// this can be used to check the existence of a file on the server, so needs to be protected
if(!Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER))
return FormValidation.ok();
if(value.getPath().equals(""))
return FormValidation.ok();
if(!value.isDirectory())
return FormValidation.error(Messages.Ant_NotADirectory(value));
File antJar = new File(value,"lib/ant.jar");
if(!antJar.exists())
return FormValidation.error(Messages.Ant_NotAntDirectory(value));
return FormValidation.ok();
}
public FormValidation doCheckName(@QueryParameter String value) {
return FormValidation.validateRequired(value);
}
}
public static class ConverterImpl extends ToolConverter {
public ConverterImpl(XStream2 xstream) { super(xstream); }
@Override protected String oldHomeField(ToolInstallation obj) {
return ((AntInstallation)obj).antHome;
}
}
}
/**
* Automatic Ant installer from apache.org.
*/
public static class AntInstaller extends DownloadFromUrlInstaller {
@DataBoundConstructor
public AntInstaller(String id) {
super(id);
}
@Extension
public static final class DescriptorImpl extends DownloadFromUrlInstaller.DescriptorImpl<AntInstaller> {
public String getDisplayName() {
return Messages.InstallFromApache();
}
@Override
public boolean isApplicable(Class<? extends ToolInstallation> toolType) {
return toolType==AntInstallation.class;
}
}
}
}
/*
* The MIT License
*
* Copyright (c) 2004-2010, Sun Microsystems, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package hudson.tasks._ant;
import hudson.console.LineTransformationOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
/**
* Filter {@link OutputStream} that places an annotation that marks Ant target execution.
*
* @author Kohsuke Kawaguchi
* @sine 1.349
*/
public class AntConsoleAnnotator extends LineTransformationOutputStream {
private final OutputStream out;
private final Charset charset;
private boolean seenEmptyLine;
public AntConsoleAnnotator(OutputStream out, Charset charset) {
this.out = out;
this.charset = charset;
}
@Override
protected void eol(byte[] b, int len) throws IOException {
String line = charset.decode(ByteBuffer.wrap(b, 0, len)).toString();
// trim off CR/LF from the end
line = trimEOL(line);
if (seenEmptyLine && endsWith(line,':') && line.indexOf(' ')<0)
// put the annotation
new AntTargetNote().encodeTo(out);
if (line.equals("BUILD SUCCESSFUL") || line.equals("BUILD FAILED"))
new AntOutcomeNote().encodeTo(out);
seenEmptyLine = line.length()==0;
out.write(b,0,len);
}
private boolean endsWith(String line, char c) {
int len = line.length();
return len>0 && line.charAt(len-1)==c;
}
@Override
public void close() throws IOException {
super.close();
out.close();
}
}
/*
* The MIT License
*
* Copyright (c) 2004-2010, InfraDNA, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package hudson.tasks._ant;
import hudson.Extension;
import hudson.MarkupText;
import hudson.console.ConsoleAnnotationDescriptor;
import hudson.console.ConsoleAnnotator;
import hudson.console.ConsoleNote;
/**
* Annotates the BUILD SUCCESSFUL/FAILED line of the Ant execution.
*
* @author Kohsuke Kawaguchi
*/
public class AntOutcomeNote extends ConsoleNote {
public AntOutcomeNote() {
}
@Override
public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) {
if (text.getText().contains("FAIL"))
text.addMarkup(0,text.length(),"<span class=ant-outcome-failure>","</span>");
if (text.getText().contains("SUCCESS"))
text.addMarkup(0,text.length(),"<span class=ant-outcome-success>","</span>");
return null;
}
@Extension
public static final class DescriptorImpl extends ConsoleAnnotationDescriptor {
public String getDisplayName() {
return "Ant build outcome";
}
}
}
/*
* The MIT License
*
* Copyright (c) 2004-2010, Sun Microsystems, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package hudson.tasks._ant;
import hudson.Extension;
import hudson.MarkupText;
import hudson.console.ConsoleNote;
import hudson.console.ConsoleAnnotationDescriptor;
import hudson.console.ConsoleAnnotator;
import java.util.regex.Pattern;
/**
* Marks the log line "TARGET:" that Ant uses to mark the beginning of the new target.
* @sine 1.349
*/
public final class AntTargetNote extends ConsoleNote {
public AntTargetNote() {
}
@Override
public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) {
// still under development. too early to put into production
if (!ENABLED) return null;
MarkupText.SubText t = text.findToken(Pattern.compile(".*(?=:)"));
if (t!=null)
t.addMarkup(0,t.length(),"<b class=ant-target>","</b>");
return null;
}
@Extension
public static final class DescriptorImpl extends ConsoleAnnotationDescriptor {
public String getDisplayName() {
return "Ant targets";
}
}
public static boolean ENABLED = !Boolean.getBoolean(AntTargetNote.class.getName()+".disabled");
}
<!--
The MIT License
Copyright (c) 2004-2010, Sun Microsystems, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
<!--
Config page
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<f:entry title="${%Name}" field="name">
<f:textbox />
</f:entry>
<f:entry title="ANT_HOME" field="home">
<f:textbox />
</f:entry>
</j:jelly>
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=Navn
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=Name
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=Nombre
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=Nom
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc., Seiji Sogabe
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=\u540D\u524D
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=Naam
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=Nome
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Name=\u0438\u043C\u044F
name=\u0438\u043C\u044F
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ installation=Installations de Ant
List\ of\ Ant\ installations\ on\ this\ system=Liste des installations de Ant sur ce système
name=Nom
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ installation=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307FAnt
List\ of\ Ant\ installations\ on\ this\ system=Jenkins\u3067\u5229\u7528\u3059\u308B\u3001\u3053\u306E\u30B7\u30B9\u30C6\u30E0\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305FAnt\u306E\u4E00\u89A7\u3067\u3059
name=\u540D\u524D
Add\ Ant=Ant\u8FFD\u52A0
Delete\ Ant=Ant\u524A\u9664
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ installation=Ant installatie
List\ of\ Ant\ installations\ on\ this\ system=Lijst van de op dit systeem beschikbare installaties.
name=naam
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ installation=Instala\u00e7\u00e2o do Ant
List\ of\ Ant\ installations\ on\ this\ system=Lista de instala\u00e7\u00f5es do Ant neste sistema
name=nome
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ installation=\u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f Ant
List\ of\ Ant\ installations\ on\ this\ system=\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 Ant \u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435
name=\u0418\u043c\u044f
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ installation=Ant\ kurulumu
List\ of\ Ant\ installations\ on\ this\ system=Sistemdeki\ Ant\ kurulumlar\u0131n\u0131n\ listesi
name=isim
/*
* The MIT License
*
* Copyright (c) 2011, CloudBees, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package hudson.tasks.Ant;
f=namespace(lib.FormTagLib)
if (descriptor.installations.length != 0) {
f.entry(title:_("Ant Version")) {
select(class:"setting-input",name:"ant.antName") {
option(value:"(Default)", _("Default"))
descriptor.installations.each {
f.option(selected:it.name==instance?.ant?.name, value:it.name, it.name)
}
}
}
}
f.entry(title:_("Targets"),help:"/help/ant/ant-targets.html") {
f.expandableTextbox(name:"ant.targets",value:instance?.targets)
}
f.advanced {
f.entry(title:_("Build File"),help:"/help/ant/ant-buildfile.html") {
f.expandableTextbox(name:"ant.buildFile",value:instance?.buildFile)
}
f.entry(title:_("Properties"),help:"/help/ant/ant-properties.html") {
f.expandableTextbox(name:"ant.properties",value:instance?.properties)
}
f.entry(title:_("Java Options"),help:"/help/ant/ant-opts.html") {
f.expandableTextbox(name:"ant.antOpts",value:instance?.antOpts)
}
}
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Default=Standard
Build\ File=Byggefil
Properties=Egenskaber
Targets=M\u00e5l
Ant\ Version=Ant version
Java\ Options=Java tilvalg
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=Ant Version
Default=Standard
Targets=Target
Build\ File=Ant Build Datei
Properties=Systemeigenschaften
Java\ Options=Java-Optionen
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=Versión de Ant
Default=Por defecto
Targets=Destinos
Build\ File=Fichero Ant
Properties=Propiedades
Java\ Options=Opciones de java
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=Version de Ant
Default=Par défaut
Targets=Cibles
Build\ File=Fichier de Build
Properties=Propriétés
Java\ Options=Options Java
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=\u4F7F\u7528\u3059\u308BAnt
Default=\u30C7\u30D5\u30A9\u30EB\u30C8
Targets=\u30BF\u30FC\u30B2\u30C3\u30C8
Build\ File=\u30D3\u30EB\u30C9\u30D5\u30A1\u30A4\u30EB
Properties=\u30D7\u30ED\u30D1\u30C6\u30A3
Java\ Options=Java\u30AA\u30D7\u30B7\u30E7\u30F3
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=Ant versie
Default=Standaard
Targets=Doelen
Build\ File=Ant bouwbestand
Properties=Eigenschappen
Java\ Options=Java opties
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=Vers\u00e3o do Ant
Default=Padr\u00e3o
Targets=Alvos
Build\ File=Arquivo de Constru\u00e7\u00e3o
Properties=Propriedades
Java\ Options=Op\u00e7\u00f5es Java
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=\u0412\u0435\u0440\u0441\u0438\u044f Ant
Default=\u041f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
Targets=\u0426\u0435\u043b\u0438
Build\ File=\u0421\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b Ant
Properties=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430
Java\ Options=\u041e\u043f\u0446\u0438\u0438 Java
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Ant\ Version=Ant Versiyonu
Default=Varsay\u0131lan
Targets=Hedefler
Build\ File=Yap\u0131land\u0131rma Dosyas\u0131
Properties=\u00d6zellikler
Java\ Options=Java\ Se\u00e7enekleri
.ant-outcome-failure {
font-weight: bold;
color: red;
}
.ant-outcome-success {
color: #204A87;
}
\ No newline at end of file
<!--
The MIT License
Copyright (c) 2004-2010, Sun Microsystems, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
<l:ajax>
<table class='pane' id='console-outline'>
<tr>
<td class='pane-header'>${%Executed Ant Targets}</td>
</tr>
<tr>
<td id='console-outline-body' />
</tr>
</table>
</l:ajax>
</j:jelly>
\ No newline at end of file
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Executed\ Ant\ Targets=Afvikl Ant m\u00e5l
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Executed\ Ant\ Targets=Ausgeführte Ant-Targets
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi,Seiji Sogabe
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Executed\ Ant\ Targets=\u5B9F\u884C\u3055\u308C\u305FAnt\u306E\u30BF\u30FC\u30B2\u30C3\u30C8
# The MIT License
#
# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Executed\ Ant\ Targets=Metas Ant executadas
(function() {
// created on demand
var outline = null;
var loading = false;
var queue = []; // ant targets are queued up until we load outline.
function loadOutline() {
if (outline!=null) return false; // already loaded
if (!loading) {
loading = true;
var u = new Ajax.Updater(document.getElementById("side-panel"),
rootURL+"/descriptor/hudson.tasks._ant.AntTargetNote/outline",
{insertion: Insertion.Bottom, onComplete: function() {
if (!u.success()) return; // we can't us onSuccess because that kicks in before onComplete
outline = document.getElementById("console-outline-body");
loading = false;
queue.each(handle);
}});
}
return true;
}
function handle(e) {
if (loadOutline()) {
queue.push(e);
} else {
var id = "ant-target-"+(iota++);
outline.appendChild(parseHtml("<li><a href='#"+id+"'>"+e.innerHTML+"</a></li>"))
if (document.all)
e.innerHTML += '<a name="' + id + '"/>'; // IE8 loses "name" attr in appendChild
else {
var a = document.createElement("a");
a.setAttribute("name",id);
e.appendChild(a);
}
}
}
Behaviour.register({
// insert <a name="..."> for each Ant target and put it into the outline
"b.ant-target" : function(e) {
handle(e);
}
});
}());
package hudson.tasks._ant;
import hudson.MarkupText;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Unit test for the {@link AntTargetNote} class.
*/
public class AntTargetNoteTest {
private boolean enabled;
@Before
public void setUp() {
enabled = AntTargetNote.ENABLED;
}
@After
public void tearDown() {
// Restore the original setting.
AntTargetNote.ENABLED = enabled;
}
@Test
public void testAnnotateTarget() {
assertEquals("<b class=ant-target>TARGET</b>:", annotate("TARGET:"));
}
@Test
public void testAnnotateTargetContainingColon() {
// See HUDSON-7026.
assertEquals("<b class=ant-target>TEST:TARGET</b>:", annotate("TEST:TARGET:"));
}
@Test
public void testDisabled() {
AntTargetNote.ENABLED = false;
assertEquals("TARGET:", annotate("TARGET:"));
}
private String annotate(String text) {
MarkupText markupText = new MarkupText(text);
new AntTargetNote().annotate(new Object(), markupText, 0);
return markupText.toString(true);
}
}
/*
* The MIT License
*
* Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package hudson.tasks;
import com.gargoylesoftware.htmlunit.html.HtmlButton;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import hudson.Functions;
import hudson.matrix.Axis;
import hudson.matrix.AxisList;
import hudson.matrix.MatrixRun;
import hudson.matrix.MatrixProject;
import hudson.model.Cause.UserCause;
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.model.ParametersDefinitionProperty;
import hudson.model.PasswordParameterDefinition;
import hudson.model.StringParameterDefinition;
import hudson.tasks.Ant.AntInstallation;
import hudson.tasks.Ant.AntInstallation.DescriptorImpl;
import hudson.tasks.Ant.AntInstaller;
import hudson.tools.InstallSourceProperty;
import hudson.tools.ToolProperty;
import hudson.tools.ToolPropertyDescriptor;
import hudson.util.DescribableList;
import org.jvnet.hudson.test.Bug;
import org.jvnet.hudson.test.ExtractResourceSCM;
import org.jvnet.hudson.test.HudsonTestCase;
import org.jvnet.hudson.test.SingleFileSCM;
/**
* @author Kohsuke Kawaguchi
*/
public class AntTest extends HudsonTestCase {
/**
* Tests the round-tripping of the configuration.
*/
public void testConfigRoundtrip() throws Exception {
FreeStyleProject p = createFreeStyleProject();
p.getBuildersList().add(new Ant("a",null,"-b","c.xml","d=e"));
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage(p,"configure");
HtmlForm form = page.getFormByName("config");
submit(form);
Ant a = p.getBuildersList().get(Ant.class);
assertNotNull(a);
assertEquals("a",a.getTargets());
assertNull(a.getAnt());
assertEquals("-b",a.getAntOpts());
assertEquals("c.xml",a.getBuildFile());
assertEquals("d=e",a.getProperties());
}
/**
* Simulates the addition of the new Ant via UI and makes sure it works.
*/
public void testGlobalConfigAjax() throws Exception {
HtmlPage p = new WebClient().goTo("configure");
HtmlForm f = p.getFormByName("config");
HtmlButton b = getButtonByCaption(f, "Add Ant");
b.click();
findPreviousInputElement(b,"name").setValueAttribute("myAnt");
findPreviousInputElement(b,"home").setValueAttribute("/tmp/foo");
submit(f);
verify();
// another submission and verify it survives a roundtrip
p = new WebClient().goTo("configure");
f = p.getFormByName("config");
submit(f);
verify();
}
private void verify() throws Exception {
AntInstallation[] l = get(DescriptorImpl.class).getInstallations();
assertEquals(1,l.length);
assertEqualBeans(l[0],new AntInstallation("myAnt","/tmp/foo",NO_PROPERTIES),"name,home");
// by default we should get the auto installer
DescribableList<ToolProperty<?>,ToolPropertyDescriptor> props = l[0].getProperties();
assertEquals(1,props.size());
InstallSourceProperty isp = props.get(InstallSourceProperty.class);
assertEquals(1,isp.installers.size());
assertNotNull(isp.installers.get(AntInstaller.class));
}
public void testSensitiveParameters() throws Exception {
FreeStyleProject project = createFreeStyleProject();
ParametersDefinitionProperty pdb = new ParametersDefinitionProperty(
new StringParameterDefinition("string", "defaultValue", "string description"),
new PasswordParameterDefinition("password", "12345", "password description"),
new StringParameterDefinition("string2", "Value2", "string description")
);
project.addProperty(pdb);
project.setScm(new SingleFileSCM("build.xml", hudson.tasks._ant.AntTargetAnnotationTest.class.getResource("simple-build.xml")));
project.getBuildersList().add(new Ant("foo",null,null,null,null));
FreeStyleBuild build = project.scheduleBuild2(0).get();
String buildLog = getLog(build);
assertNotNull(buildLog);
System.out.println(buildLog);
assertFalse(buildLog.contains("-Dpassword=12345"));
}
public void testParameterExpansion() throws Exception {
String antName = configureDefaultAnt().getName();
// *_URL vars are not set if hudson.getRootUrl() is null:
((Mailer.DescriptorImpl)hudson.getDescriptor(Mailer.class)).setHudsonUrl("http://test/");
// Use a matrix project so we have env stuff via builtins, parameters and matrix axis.
MatrixProject project = createMatrixProject("test project"); // Space in name
project.setAxes(new AxisList(new Axis("AX", "is")));
project.addProperty(new ParametersDefinitionProperty(
new StringParameterDefinition("FOO", "bar", "")));
project.setScm(new ExtractResourceSCM(getClass().getResource("ant-job.zip")));
project.getBuildersList().add(new Ant("", antName, null, null,
"vNUM=$BUILD_NUMBER\nvID=$BUILD_ID\nvJOB=$JOB_NAME\nvTAG=$BUILD_TAG\nvEXEC=$EXECUTOR_NUMBER\n"
+ "vNODE=$NODE_NAME\nvLAB=$NODE_LABELS\nvJAV=$JAVA_HOME\nvWS=$WORKSPACE\nvHURL=$HUDSON_URL\n"
+ "vBURL=$BUILD_URL\nvJURL=$JOB_URL\nvHH=$HUDSON_HOME\nvJH=$JENKINS_HOME\nvFOO=$FOO\nvAX=$AX"));
assertBuildStatusSuccess(project.scheduleBuild2(0, new UserCause()));
MatrixRun build = project.getItem("AX=is").getLastBuild();
String log = getLog(build);
assertTrue("Missing $BUILD_NUMBER: " + log, log.contains("vNUM=1"));
assertTrue("Missing $BUILD_ID: " + log, log.contains("vID=2")); // Assuming the year starts with 2!
assertTrue("Missing $JOB_NAME: " + log, log.contains(project.getName()));
// Odd build tag, but it's constructed with getParent().getName() and the parent is the
// matrix configuration, not the project.. if matrix build tag ever changes, update
// expected value here:
assertTrue("Missing $BUILD_TAG: " + log, log.contains("vTAG=jenkins-AX=is-1"));
assertTrue("Missing $EXECUTOR_NUMBER: " + log, log.matches("(?s).*vEXEC=\\d.*"));
// $NODE_NAME is expected to be empty when running on master.. not checking.
assertTrue("Missing $NODE_LABELS: " + log, log.contains("vLAB=master"));
assertTrue("Missing $JAVA_HOME: " + log, log.matches("(?s).*vJH=[^\\r\\n].*"));
assertTrue("Missing $WORKSPACE: " + log, log.matches("(?s).*vWS=[^\\r\\n].*"));
assertTrue("Missing $HUDSON_URL: " + log, log.contains("vHURL=http"));
assertTrue("Missing $BUILD_URL: " + log, log.contains("vBURL=http"));
assertTrue("Missing $JOB_URL: " + log, log.contains("vJURL=http"));
assertTrue("Missing $HUDSON_HOME: " + log, log.matches("(?s).*vHH=[^\\r\\n].*"));
assertTrue("Missing $JENKINS_HOME: " + log, log.matches("(?s).*vJH=[^\\r\\n].*"));
assertTrue("Missing build parameter $FOO: " + log, log.contains("vFOO=bar"));
assertTrue("Missing matrix axis $AX: " + log, log.contains("vAX=is"));
}
public void testParameterExpansionByShell() throws Exception {
String antName = configureDefaultAnt().getName();
FreeStyleProject project = createFreeStyleProject();
project.setScm(new ExtractResourceSCM(getClass().getResource("ant-job.zip")));
String homeVar = Functions.isWindows() ? "%HOME%" : "$HOME";
project.addProperty(new ParametersDefinitionProperty(
new StringParameterDefinition("vFOO", homeVar, ""),
new StringParameterDefinition("vBAR", "Home sweet " + homeVar + ".", "")));
project.getBuildersList().add(new Ant("", antName, null, null,
"vHOME=" + homeVar + "\nvFOOHOME=Foo " + homeVar + "\n"));
FreeStyleBuild build = project.scheduleBuild2(0, new UserCause()).get();
assertBuildStatusSuccess(build);
String log = getLog(build);
if (!Functions.isWindows()) homeVar = "\\" + homeVar; // Regex escape for $
assertTrue("Missing simple HOME parameter: " + log,
log.matches("(?s).*vFOO=(?!" + homeVar + ").*"));
assertTrue("Missing HOME parameter with other text: " + log,
log.matches("(?s).*vBAR=Home sweet (?!" + homeVar + ")[^\\r\\n]*\\..*"));
assertTrue("Missing HOME ant property: " + log,
log.matches("(?s).*vHOME=(?!" + homeVar + ").*"));
assertTrue("Missing HOME ant property with other text: " + log,
log.matches("(?s).*vFOOHOME=Foo (?!" + homeVar + ").*"));
}
@Bug(7108)
public void testEscapeXmlInParameters() throws Exception {
String antName = configureDefaultAnt().getName();
FreeStyleProject project = createFreeStyleProject();
project.setScm(new ExtractResourceSCM(getClass().getResource("ant-job.zip")));
project.addProperty(new ParametersDefinitionProperty(
new StringParameterDefinition("vFOO", "<xml/>", "")));
project.getBuildersList().add(new Ant("", antName, null, null, "vBAR=<xml/>\n"));
FreeStyleBuild build = project.scheduleBuild2(0, new UserCause()).get();
assertBuildStatusSuccess(build);
String log = getLog(build);
assertTrue("Missing parameter: " + log, log.contains("vFOO=<xml/>"));
assertTrue("Missing ant property: " + log, log.contains("vBAR=<xml/>"));
}
}
package hudson.tasks._ant;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.tasks.Ant;
import org.jvnet.hudson.test.HudsonTestCase;
import org.jvnet.hudson.test.SingleFileSCM;
/**
* @author Kohsuke Kawaguchi
*/
public class AntTargetAnnotationTest extends HudsonTestCase {
public void test1() throws Exception {
FreeStyleProject p = createFreeStyleProject();
Ant.AntInstallation ant = configureDefaultAnt();
p.getBuildersList().add(new Ant("foo",ant.getName(),null,null,null));
p.setScm(new SingleFileSCM("build.xml",getClass().getResource("simple-build.xml")));
FreeStyleBuild b = buildAndAssertSuccess(p);
AntTargetNote.ENABLED = true;
try {
HudsonTestCase.WebClient wc = createWebClient();
HtmlPage c = wc.getPage(b, "console");
System.out.println(c.asText());
HtmlElement o = c.getElementById("console-outline");
assertEquals(2,o.selectNodes(".//LI").size());
} finally {
AntTargetNote.ENABLED = false;
}
}
}
<project>
<target name="foo" depends="bar">
<echo>abc</echo>
</target>
<target name="bar">
<echo>def</echo>
</target>
</project>
<div>
If your build requires a custom <a href="http://ant.apache.org/manual/running.html#options">-buildfile</a>,
specify it here. By default Ant will use the <code>build.xml</code> in the root directory;
this option can be used to use build files with a different name or in a subdirectory.
</div>
<div>
Geben Sie hier den Wert für die Ant-Option <code><a href="http://ant.apache.org/manual/running.html#options">-buildfile</a></code>
an. Standardmäßig verwendet Ant das Skript <code>build.xml</code> im Stammvereichnis.
Mit dieser Option können Sie aber auch Ant-Skripte mit abweichenden Namen oder aus
Unterverzeichnissen verwenden.
</div>
<div>
Si votre build nécessite un
<a href="http://ant.apache.org/manual/running.html#options">fichier de build</a>
particulier, indiquez-le ici. Par défaut, Ant utilisera le fichier
<code>build.xml</code> dans le répertoire racine. Cette option peut être
utilisée pour pointer vers des fichiers de build de noms différents ou
placés dans un sous-répertoire.
</div>
<div>
ビルドが特別なビルドファイルを必要とする場合、ここに指定します
<a href="http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/running.html#options">-buildfile</a>オプションと同義)。
デフォルトでは、Antはルートディレクトリの<code>build.xml</code>を使用しますが、
このオプションを指定すると、違う名前かサブディレクトリのビルドファイルを使用できます。
</div>
<div>
Indien uw project een niet standaard <a href="http://ant.apache.org/manual/running.html#options"> bouwconfiguratie</a> vereist, dan kunt u die hier opgeven. Standaard gebruikt Ant het <code>build.xml</code> bestand in de hoofdfolder. Met deze optie kunt u anders genaamde bouwbestanden, of zelfs bouwbestanden in sub-folders gebruiken.
</div>
<div>
Se sua constru&#231;&#227;o necessita de um <a href="http://ant.apache.org/manual/running.html#options">-buildfile</a> customizado,
especifique-o aqui. Por padr&#227;o o Ant usar&#225; o <code>build.xml</code> no diret&#243;rio ra&#237;z,
esta op&#231;&#227;o pode ser usada para usar arquivos de constru&#231;&#227;o com um nome diferente o em um subdiret&#243;rio.
</div>
<div>
Если ваша сборка требует особый <a href="http://ant.apache.org/manual/running.html#options">-buildfile</a>,
укажите его здесь. По-умолчанию Ant будет использовать <code>build.xml</code> из корневой
директории. Эта опция позволяет использовать конфигурационные файлы с другим именем или
находящийся в поддиректории.
</div>
<div>
E&#287;er yap&#305;land&#305;rma i&#351;leminiz, varsay&#305;lan&#305;n d&#305;&#351;&#305;nda bir <a href="http://ant.apache.org/manual/running.html#options">yap&#305;land&#305;rma dosyas&#305;</a> ile
&#231;al&#305;&#351;&#305;yorsa, bu dosyan&#305;n ismini buraya yazman&#305;z gerekir.
<br>
Bu alan&#305;, varsay&#305;lan durumun d&#305;&#351;&#305;nda bir yap&#305;land&#305;rma dosyas&#305; isminiz var ise veya yap&#305;land&#305;rma dosyan&#305;z farkl&#305; bir dizinde ise kullanman&#305;z gerekir,
e&#287;er herhangi bir dosya ismi yazmazsan&#305;z, k&#246;k dizinde bulunan <code>build.xml</code> dosyas&#305; kullan&#305;lacakt&#305;r.
</div>
<div>
If your build requires a custom <a href="http://ant.apache.org/manual/running.html#envvars">ANT_OPTS</a>,
specify it here. Typically this may be used to specify java memory limits to use, for example <code>-Xmx512m</code>.
Note that other Ant options (such as <tt>-lib</tt>) should go to the "Ant targets" field.
</div>
\ No newline at end of file
<div>
<!-- OUTDATED -->
Geben Sie hier Ihre <a href="http://ant.apache.org/manual/running.html#envvars">ANT_OPTS</a> an,
sofern Ihr Build spezielle Einstellungen benötigt. Typischerweise wird diese
Option eingesetzt, um Java-Speicherlimits anzugeben, z.B. mit <code>-Xmx512m</code>.
</div>
\ No newline at end of file
<div>
<!-- OUTDATED -->
Si votre build nécessite une variable
<a href="http://ant.apache.org/manual/running.html#envvars">ANT_OPTS</a>
particulière, indiquez-la ici. Typiquement, cela peut être utilisé pour
spécifier une limite dans la quantité de mémoire que Java peut occuper,
par exemple <code>-Xmx512m</code>.
</div>
\ No newline at end of file
<div>
ビルドが特別な<a href="http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/running.html#envvars">Antのオプション</a>を必要とする場合、
ここに指定します。一般的に、これは<code>-Xmx512m</code>のように、使用するJavaのメモリの制限を指定するのに使用します。
他のAntのオプション(例えば、<tt>-lib</tt>)は、"ターゲット"欄に指定しなくてはならないことに注意してください。
</div>
\ No newline at end of file
<div>
Indien uw bouwpoging specifieke opties, via <a href="http://ant.apache.org/manual/running.html#envvars">ANT_OPTS</a>, nodig heeft, kunt U deze hier opgeven. Deze optie wordt typisch gebruikt voor het instellen van de java geheugenlimieten, bvb. <code>-Xmx512m</code>.
Merk op dat andere Ant opties ( zoals <tt>-lib</tt>) via het "Ant doelen" veld dienen opgegeven te worden.
</div>
\ No newline at end of file
<div>
Se sua constru&#231;&#227;o necessita de uma <a href="http://ant.apache.org/manual/running.html#envvars">ANT_OPTS</a> customizadas,
especifique-a aqui. Tipicamente isto pode ser usado para especificar limites de mem&#243;ria para o java usar, por exemplo <code>-Xmx512m</code>.
Note que outras op&#231;&#245;es do Ant (tal como <tt>-lib</tt>) deveriam ir para o campo "Alvos Ant".
</div>
<div>
Если ваша сборка требует настройки <a href="http://ant.apache.org/manual/running.html#envvars">ANT_OPTS</a>,
укажите нужное значение в этом поле. Обычно это поле может использоваться для установки ограничения
на размер используемой java памяти, например, <code>-Xmx512m</code>.
Обратите внимание, что прочие опции Ant (такие как <tt>-lib</tt>) должны находиться в поле "Цели Ant".
</div>
<div>
Yap&#305;land&#305;rman&#305;z, &#246;zel bir <a href="http://ant.apache.org/manual/running.html#envvars">ANT_OPTS</a> gerektiriyorsa,
bu k&#305;s&#305;mda belirleyebilirsiniz. Mesela, java haf&#305;za limitlerini belirlemek isterseniz, <code>-Xmx512m</code> parametresini buraya yazabilirsiniz.
&#350;unu unutmay&#305;n, <tt>-lib</tt> gibi di&#287;er Ant se&#231;enekleri, "Ant hedefleri" k&#305;sm&#305;na yaz&#305;lmal&#305;d&#305;r.
</div>
\ No newline at end of file
<div>
Properties needed by your ant build can be specified here (in standard <a
href="http://download.oracle.com/javase/6/docs/api/java/util/Properties.html#load%28java.io.Reader%29"
target="_new">properties file format</a>):
<pre># comment
name1=value1
name2=$VAR2
</pre>
These are passed to Ant like <tt>"-Dname1=value1 -Dname2=value2"</tt>.
Always use <tt>$VAR</tt> style (even on Windows) for references to Jenkins-defined
environment variables. On Windows, <tt>%VAR%</tt> style references may be used
for environment variables that exist outside of Jenkins.
Backslashes are used for escaping, so use <tt>\\</tt> for a single backslash.
Double quotes (") should be avoided, as ant on *nix wraps parameters in quotes
quotes and runs them through <tt>eval</tt>, and Windows has its own issues
with escaping.. in either case, use of quotes may result in build failure.
To define an empty property, simply write <tt>varname=</tt>
</div>
<div>
Geben Sie hier Eigenschaften an, die dem Ant-Skript übergeben werden (im Standardformat der
Properties-Dateien)
<pre># comment
name1=value1
name2=value2
</pre>
Dies entspricht einer Übergabe an Ant in der Kommandozeile mit
<tt>"-Dname1=value1 -Dname2=value2"</tt>.
</div>
<div>
Vous pouvez indiquer ici les propriétés nécessaires pour votre build Ant
(avec le format standard des fichiers de propriétés)&nbsp;:
<pre># commentaire
nom1=valeur1
nom2=valeur2
</pre>
Ces propriétés sont passées à Ant ainsi&nbsp;:
<tt>"-Dnom1=valeur1 -Dnom2=valeur2"</tt>
</div>
<div>
Antのビルドで必要なプロパティをここに(標準的なプロパティファイル形式で)指定します。
<pre># comment
name1=value1
name2=value2
</pre>
このプロパティは、<tt>"-Dname1=value1 -Dname2=value2"</tt>のようにAntに渡されます。
</div>
<div>
Vereiste bouwparameters kunnen hier opgegeven worden. Hierbij dient U gebruik te maken van het standaard parameterformaat:
<pre># commentaar
naam1=waarde1
naam2=waarde2
</pre>
Deze parameters worden als volgt aan Ant doorgegeven:
<tt>"-Dnaam1=waarde1 -Dnaam2=waarde2"</tt>
</div>
<div>
Propriedades necess&#225;rias para sua constru&#231;&#227;o ant podem ser especificadas aqui (no formato do arquivo de propriedades padr&#227;o):
<pre># coment&#225;rio
nome1=valor1
nome2=valor2
</pre>
Estas propriedades s&#227;o passadas para o Ant como <tt>"-Dnome1=valor1 -Dnome2=valor2"</tt>
</div>
<div>
Свойства необходимые вашей сборке могут быть указаны здесь (в формате "Стандартного файла свойств"):
<pre># комментарий
свойство1=значение1
свойство2=значение2
</pre>
Они будут переданы в Ant в виде <tt>"-Dсвойство1=значение1 -Dсвойство2=значение2"</tt>
</div>
<div>
Ant yap&#305;land&#305;rman&#305;z i&#231;in gerekli olan &#246;zellikler (de&#287;i&#351;kenler) burada belirlenebilir (properties dosyas&#305; format&#305;nda)
<pre># comment
name1=value1
name2=value2
</pre>
Bu de&#287;erler Ant'a <tt>"-Dname1=value1 -Dname2=value2"</tt> &#351;eklinde aktar&#305;l&#305;r.
</div>
<div>
Specify a list of Ant targets to be invoked, or leave it empty to invoke the default Ant target
specified in the build script. Additionally, you can also use this field to specify other Ant options.
</div>
<div>
Geben Sie eine Liste von auszuführenden Ant-Zielen (targets) an. Lassen Sie das Feld
frei, um das Standardziel (default target) auszuführen, das im Ant-Skript definiert ist.
Zusätzlich können Sie in diesem Feld weitere Ant-Optionen angeben.
</div>
<div>
Spécifiez ici une liste des cibles Ant à invoquer, ou laissez le champ
vide pour invoquer la cible par défaut spécifiée dans le script.
Vous pouvez aussi utiliser ce champ pour spécifier des options Ant
supplémentaires.
</div>
\ No newline at end of file
<div>
実行するAntのターゲットのリストを指定します。何も指定しないと、ビルドスクリプトに指定したデフォルトのターゲットを実行します。
Antの他のオプションをこの項目に指定することもできます。
</div>
\ No newline at end of file
<div>
Geef een lijst van uit te voeren doelen op. Indien U dit veld leeg laat, zal het standaard Ant doel, zoals gedefini&euml;erd in uw bouwspecificatie, uitgvoerd worden.
U kunt dit veld tevens gebruiken voor het opgeven van extra Ant opties.
</div>
\ No newline at end of file
<div>
Especifique a lista dos alvos Ant a serem invocados, ou deixe em branco para invocar o alvo padr&#227;o do Ant
especificado no script de constru&#231;&#227;o. Adicionalmente, voc&#234; tamb&#233;m pode usar este campo para especificar outras op&#231;&#245;es do Ant.
</div>
<div>
Укажите список целей Ant которые будут вызваны при сборке или оставьте поле пустым для вызова
целей по-умолчанию, указанных в сборочном сценарии. Также вы можете использовать это
поле для передачи других опций запуска Ant.
</div>
\ No newline at end of file
<div>
&#199;a&#287;&#305;r&#305;lacak Ant hedeflerini belirleyin. E&#287;er bo&#351; b&#305;rak&#305;l&#305;rsa, yap&#305;land&#305;rma dosyas&#305;nda belirlenen hedef
&#231;al&#305;&#351;t&#305;r&#305;lacakt&#305;r. Bu alan&#305; ayn&#305; zamanda di&#287;er Ant se&#231;eneklerini (ANT_OPTS) uygulamak i&#231;in de kullanabilirsiniz.
</div>
\ No newline at end of file
<div>
For projects that use Ant as the build system. This causes Jenkins to
invoke Ant with the given targets and options. Any non-zero exit code
causes Jenkins to mark the build as a failure.
<p>
Jenkins supplies some <a href="../../env-vars.html" target="_new">
environment variables</a> that can be used from within the build script.
</div>
<div>
Für Projekte, die Ant als Build-System verwenden. Dies veranlasst Jenkins,
Ant mit den angegebenen Zielen (targets) und Optionen aufzurufen. Ein Ergebniscode
ungleich 0 bewirkt, dass Jenkins den Build als Fehlschlag markiert.
<p>
Jenkins stellt einige <a href='../../env-vars.html' target=_new>
Umgebungsvariablen</a> bereit, die innerhalb des Build-Skriptes verwendet
verwendet werden können.
</div>
\ No newline at end of file
<div>
Pour les projets qui utilisent Ant comme outil de build.
Jenkins appellera Ant avec les cibles et les options spécifiées.
Un code de retour différent de zéro permet à Jenkins d'enregistrer le
build comme un échec.
<p>
Jenkins fournit des <a href='../../env-vars.html' target='_new'>
variables d'environnement</a> qui peuvent être utilisées dans
le script de build.
</div>
\ No newline at end of file
<div>
ビルドシステムとしてAntを使用するプロジェクトで利用します。この設定により、Jenkinsは指定されたターゲットとオプション等
を利用して、Antを呼び出します。Antが非0の終了コードを返すと、エラーが起こったものとみなされてビルドは
失敗扱いとなります。
<p>
Jenkinsは、<a href="../../env-vars.html" target="_new">幾つかの環境変数</a>
提供します。これらの環境変数にはビルドスクリプトの中からアクセスする事ができます。
</div>
<div>
Para projetos que usam Ant como sistema de constru&#231;&#227;o. Isto faz o Jenkins
invocar o Ant com os alvos e op&#231;&#245;es informadas. Qualquer c&#243;digo de sa&#237;da
diferente de zero faz com que o Jenkins marque a constru&#231;&#227;o como falha.
<p>
Jenkins fornece algumas <a href='../../env-vars.html' target=_new>
vari&#225;veis de ambiente</a> que podem ser usadas de dentro do script de constru&#231;&#227;o.
</div>
<div>
Для проектов, использующих Ant для сборки. Указывает Jenkins вызывать Ant
с указанными целями и опциями. Сборка будет считаться провалившейся, если
вызов завершился с ненулевым кодом.
<p>
Jenkins предоставляет дополнительные <a href='../../env-vars.html' target=_new>переменные
окружения</a> которые могут быть использованы в сценарии сборки.
</div>
\ No newline at end of file
<div>
Ant'&#305; yap&#305;land&#305;rma sistemi arac&#305; olarak kullanan projeler i&#231;indir. Bu se&#231;enek
Jenkins'&#305;n, Ant'&#305;, verilen hedef ve se&#231;enekler ile &#231;a&#287;&#305;rmas&#305;n&#305; sa&#287;lar. 0'&#305;n d&#305;&#351;&#305;nda (non-zero)
olu&#351;an &#231;&#305;k&#305;&#351; kodlar&#305; Jenkins'&#305;n, yap&#305;land&#305;rmay&#305; ba&#351;ar&#305;s&#305;z olarak ilan etmesini sa&#287;lar.
<p>
Jenkins yap&#305;land&#305;rma scriptleri i&#231;erisinde kullanabilmek &#252;zere
<a href='../../env-vars.html' target=_new>ortam de&#287;i&#351;kenleri</a> sa&#287;lar.
</div>
\ No newline at end of file
<div>
项目使用Ant构建系统.这将导致Jenkins去调用Ant目标和选项.任何非零返回值都会导致
Jenkins构建失败.
<p>
Jenkins提供一些<a href="../../env-vars.html" target="_new">环境变量</a>可以用在构建脚本中.
</div>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册