From 13b56feb9dfcefce777fa5356a95df9e6e6e2700 Mon Sep 17 00:00:00 2001 From: Weblate Date: Nov 04 2023 09:32:50 +0000 Subject: Added translation using Weblate (Spanish) Added translation using Weblate (Spanish) Co-authored-by: Weblate --- diff --git a/po/es/master/pages/dependency_handling.po b/po/es/master/pages/dependency_handling.po new file mode 100644 index 0000000..8b75d87 --- /dev/null +++ b/po/es/master/pages/dependency_handling.po @@ -0,0 +1,175 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2020-12-15 22:31+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title === +#: ./pages/dependency_handling.adoc:2 +#, no-wrap +msgid "Dependency Handling" +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:21 +msgid "" +"RPM has multiple types of metadata to describe dependency relationships " +"between packages. The two basic types are Requires and Provides. Requires " +"denote that a package needs something to be present at runtime to work " +"correctly and the package manager is supposed to ensure that requires are " +"met. A single Requires item can specify a package or a virtual provide. RPM " +"Provides are a way to express that a package provides certain capability " +"that other packages might need. In case of Maven packages, the Provides are " +"used to denote that a package contains certain Maven artifact. They add more " +"flexibility to the dependency management as single package can have any " +"number of provides, and they can be moved across different packages without " +"breaking other packages' requires. Provides are usually generated by " +"automatic tools based on the information from the built binaries or package " +"source." +msgstr "" + +#. type: Block title +#: ./pages/dependency_handling.adoc:22 +#, no-wrap +msgid "Dependency handling for Maven packages" +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:32 +msgid "" +"The Java packaging tooling on Fedora provides automatic Requires and " +"Provides generation for packages built using XMvn. The Provides are based on " +"Maven artifact coordinates of artifacts that were installed by the currenlty " +"being built. They are generated for each subpackage separately. They follow " +"a general format `mvn(groupId:artifactId:extension:classifier:version)`, " +"where the extension is omitted if it's `jar` and classifier is omitted if " +"empty. Version is present only for compat artifacts, but the trailing colon " +"has to be present unless it's a Jar artifact with no classifier." +msgstr "" + +#. type: delimited block - +#: ./pages/dependency_handling.adoc:41 +#, no-wrap +msgid "" +"# Example provide for Jar artifact\n" +"mvn(org.eclipse.jetty:jetty-server)\n" +"# Example provide for POM artifact\n" +"mvn(org.eclipse.jetty:jetty-parent:pom:)\n" +"# Example provide for Jar artifact with classifier\n" +"mvn(org.sonatype.sisu:sisu-guice::no_aop:)\n" +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:54 +msgid "" +"The generated Requires are based on dependencies specified in Maven POMs in " +"the project. Only dependencies with `scope` set to either `compile`, " +"`runtime` or not set at all are used for Requires generation. Requires " +"don't rely on package names and instead always use virtual provides that " +"were described above, in exactly the same format, in order to be " +"satisfieable by the already existing provides. For packages consisting of " +"multiple subpackages, Requires are generated separately for each " +"subpackage. Additionally, Requires that point to an artifact in a different " +"subpackage of the same source package are generated with exact versions to " +"prevent version mismatches between artifacts belonging to the same project." +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:57 +msgid "" +"The requires generator also always generates Requires on `java-headless` and " +"`javapackages-tools`." +msgstr "" + +#. type: Block title +#: ./pages/dependency_handling.adoc:58 +#, no-wrap +msgid "Dependency handling for non-Maven packages that ship POM files" +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:67 +msgid "" +"If the package is built built using different tool than Apache Maven, but " +"still ships Maven POM(s), the you will still get automatic provides " +"generation if you install the POM using `%mvn_artifact` and " +"`%mvn_install`. The requires generation will also be executed but the " +"outcome largely depends on whether the POM contains accurate dependency " +"insformation. If it contains dependency information, you should double check " +"that it's correct and up-to-date. Otherwise you need to add `Requires` tags " +"manually as described in the next section." +msgstr "" + +#. type: Block title +#: ./pages/dependency_handling.adoc:68 +#, no-wrap +msgid "Dependency handling for non-Maven packages that don't ship POM files" +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:74 +msgid "" +"For packages without POMs it's necessary to specify `Requires` tags " +"manually. In order to build the package you needed to specify " +"`BuildRequires` tags. You `Requires` tags will therefore likely be a subset " +"of your `BuildRequires`, excluding build tools and test only dependencies." +msgstr "" + +#. type: Block title +#: ./pages/dependency_handling.adoc:75 +#, no-wrap +msgid "Querying Requires and Provides of built packages" +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:78 +msgid "" +"The generated Requires and Provides of built packages can be queried using " +"`rpm`:" +msgstr "" + +#. type: delimited block - +#: ./pages/dependency_handling.adoc:82 +#, no-wrap +msgid "" +"rpm -qp --provides path/to/example-1.0.noarch.rpm\n" +"rpm -qp --requires path/to/example-1.0.noarch.rpm\n" +msgstr "" + +#. type: delimited block = +#: ./pages/dependency_handling.adoc:87 +msgid "" +"See also " +"xref:introduction_for_developers.adoc#querying_repositories[Querying Fedora " +"repositories]" +msgstr "" + +#. type: Block title +#: ./pages/dependency_handling.adoc:89 +#, no-wrap +msgid "Generating BuildRequires" +msgstr "" + +#. type: Plain text +#: ./pages/dependency_handling.adoc:97 +msgid "" +"While Requires and Provides are automated for Maven projects, BuildRequires " +"still remain a manual task. However, it can be at least a bit " +"simplified. XMvn ships a script `xmvn-builddep` that takes a `build.log` " +"output from mock and prints maven-style BuildRequires on artifacts that were " +"actually used during the build. It doesn't help you to figure out what the " +"BuildRequires are before you actually build it, but it may help you to have " +"a minimal set of BuildRequires that are less likely to break, as they don't " +"rely on transitive dependencies." +msgstr "" diff --git a/po/es/master/pages/introduction_for_developers.po b/po/es/master/pages/introduction_for_developers.po new file mode 100644 index 0000000..bc04b45 --- /dev/null +++ b/po/es/master/pages/introduction_for_developers.po @@ -0,0 +1,560 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2020-12-15 22:31+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title === +#: ./pages/introduction_for_developers.adoc:2 +#, no-wrap +msgid "For Java Developers" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:7 +msgid "" +"Packaging Java software has specifics which we will try to cover in this " +"section aimed at Java developers who are already familiar with Java " +"language, JVM, classpath handling, Maven, pom.xml file structure and " +"dependencies." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:12 +msgid "" +"Instead we will focus on basic packaging tools and relationships between " +"Java and RPM world. One of the most important questions is: What is the " +"reason to package software in RPM (or other distribution-specific " +"formats). There are several reasons for it, among others:" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:15 +msgid "" +"Unified way of installation of software for users of distribution regardless " +"of upstream projects" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:16 +msgid "Verification of authenticity of software packages by signing them" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:17 +msgid "Simplified software updates" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:18 +msgid "Automatic handling of dependencies for users" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:19 +msgid "Common filesystem layout across distribution enforced by packaging standards" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:21 +msgid "" +"Ability to administer, monitor and query packages installed on several " +"machines through unified interfaces" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:24 +msgid "" +"Distribution of additional metadata with the software itself such as " +"licenses used, homepage for the project, changelogs and other information " +"that users or administrators can find useful" +msgstr "" + +#. type: Title ==== +#: ./pages/introduction_for_developers.adoc:25 +#, no-wrap +msgid "Example RPM Project" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:30 +msgid "" +"RPM uses `spec` files as recipes for building software packages. We will " +"use it to package example project created in previous section. If you didn't " +"read it you don't need to; the file listing is available here and the rest " +"is not necessary for this section." +msgstr "" + +#. type: Block title +#: ./pages/introduction_for_developers.adoc:31 +#, no-wrap +msgid "Directory listing" +msgstr "" + +#. type: delimited block - +#: ./pages/introduction_for_developers.adoc:44 +#, no-wrap +msgid "" +"Makefile\n" +"src\n" +"src/org\n" +"src/org/fedoraproject\n" +"src/org/fedoraproject/helloworld\n" +"src/org/fedoraproject/helloworld/output\n" +"src/org/fedoraproject/helloworld/output/Output.java\n" +"src/org/fedoraproject/helloworld/input\n" +"src/org/fedoraproject/helloworld/input/Input.java\n" +"src/org/fedoraproject/helloworld/HelloWorld.java\n" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:47 +msgid "We packed the project directory into file `helloworld.tar.gz`." +msgstr "" + +#. type: Block title +#: ./pages/introduction_for_developers.adoc:48 +#, no-wrap +msgid "Example spec file" +msgstr "" + +#. type: delimited block - +#: ./pages/introduction_for_developers.adoc:53 +#, no-wrap +msgid "include::example$rpm_project/helloworld.spec[]\n" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:56 +msgid "RPM `spec` files contain several basic sections:" +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:57 +#, no-wrap +msgid "Header, which contains: " +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:60 +msgid "Package metadata such as its name, version, release, license..." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:61 +msgid "A `Summary` with basic one-line summary of package contents" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:62 +msgid "Package source URLs denoted with `Source0` to `SourceN` directives" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:64 +msgid "" +"Source files can then be referenced by `%SOURCE0` to `%SOURCEn`, which " +"expand to actual paths to given files" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:66 +msgid "" +"In practice, the source URL shouldn't point to a file in our filesystem, but " +"to an upstream release on the web" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:67 +msgid "Patches - using `Patch0` to `PatchN`" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:68 +msgid "Project dependencies" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:70 +msgid "" +"Build dependencies specified by `BuildRequires`, which need to be determined " +"manually." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:72 +msgid "" +"Run time dependencies will be detected automatically. If it fails, you have " +"to specify them with `Requires`." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:75 +msgid "" +"More information on this topic can be found in " +"xref:dependency_handling.adoc#dependency_handling[Dependency handling] " +"section." +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:77 +#, no-wrap +msgid "Description" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:80 +msgid "" +"Few sentences about the project and its uses. It will be displayed by " +"package management software." +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:81 +#, no-wrap +msgid "Prep section" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:83 +msgid "Unpacks the sources using `setup -q` or manually if needed" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:85 +msgid "" +"If a source file doesn't need to be extracted, it can be copied to build " +"directory by `cp -p %SOURCE0 .`" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:88 +msgid "" +"Apply patches with `%patchX`, where X is the number of patch you want to " +"apply. (You usually need the patch index, so it would be: `%patch0 -p1`)" +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:89 +#, no-wrap +msgid "Build section" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:92 +msgid "" +"Contains project compilation instructions. Usually consists of calling the " +"projects build system such as Ant, Maven or Make." +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:93 +#, no-wrap +msgid "Optional `%check` section" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:97 +msgid "" +"Runs projects integration tests. Unit test are usually run in `%build` " +"section, so if there are no integration tests available, this section is " +"omitted" +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:98 +#, no-wrap +msgid "Install section" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:101 +msgid "" +"Copies built files that are supposed to be installed into `%{buildroot}` " +"directory, which represents target filesystem's root" +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:102 +#, no-wrap +msgid "Files section" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:105 +msgid "" +"Lists all files, that should be installed from `%{buildroot}` to target " +"system." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:107 +msgid "" +"Documentation files are prefixed by `%doc` and are taken from build " +"directory instead of buildroot" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:108 +msgid "Directories that this package should own are prefixed with `%dir`" +msgstr "" + +#. type: Labeled list +#: ./pages/introduction_for_developers.adoc:109 +#, no-wrap +msgid "Changelog" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:111 +msgid "Contains changes to this spec file (not upstream)" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:114 +msgid "" +"Has prescribed format. To prevent mistakes in format, it is advised to use " +"tool such as `rpmdev-bumpspec` from package rpmdevtools to append new " +"changelog entries instead of editing it by hand" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:118 +msgid "" +"To build RPM from link:rpm_project/helloworld.spec[this `spec` file] save it " +"in your current directory and run `rpmbuild`:" +msgstr "" + +#. type: delimited block - +#: ./pages/introduction_for_developers.adoc:121 +#, no-wrap +msgid "$ rpmbuild -bb helloworld.spec\n" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:130 +msgid "" +"If everything worked OK, this should produce RPM file " +"`~/rpmbuild/RPMS/x86_64/helloworld-1.0-1.fc18.x86_64.rpm`. You can use `rpm " +"-i` or `dnf install` commands to install this package and it will add " +"`/usr/share/java/helloworld.jar` and `/usr/bin/helloworld` wrapper script to " +"your system. Please note that this specfile is simplified and lacks some " +"additional parts, such as license installation." +msgstr "" + +#. type: delimited block = +#: ./pages/introduction_for_developers.adoc:135 +msgid "" +"Paths and filenames might be slightly different depending on your " +"architecture and distribution. Output of the commands will tell you exact " +"paths" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:139 +msgid "" +"As you can see to build RPM files you can use `rpmbuild` command. It has " +"several other options, which we will cover later on." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:141 +msgid "Except building binary RPMs (`-bb`), `rpmbuild` can also be told to:" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:144 +msgid "" +"build only source RPMs (SRPMs), the packages containing source files which " +"can be later build to RPMs (option `-bs`)" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:145 +msgid "build all, both binary and source RPMs (option `-ba`)" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:147 +msgid "See `rpmbuild`'s manual page for all available options." +msgstr "" + +#. type: Title ==== +#: ./pages/introduction_for_developers.adoc:149 +#, no-wrap +msgid "Querying repositories" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:153 +msgid "" +"Fedora comes with several useful tools which can provide great assistance in " +"getting information from RPM repositories." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:158 +msgid "" +"`dnf repoquery` is a tool for querying information from RPM repositories. " +"Maintainer of Java packages might typically query the repository for " +"information like \"which package contains Maven artifact " +"`groupId:artifactId`\"." +msgstr "" + +#. type: Block title +#: ./pages/introduction_for_developers.adoc:159 +#, no-wrap +msgid "Find out which package provides given artifact" +msgstr "" + +#. type: delimited block - +#: ./pages/introduction_for_developers.adoc:164 +#, no-wrap +msgid "" +"$ dnf repoquery --whatprovides 'mvn(commons-io:commons-io)'\n" +"apache-commons-io-1:2.4-9.fc19.noarch\n" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:168 +msgid "" +"The example above shows that one can get to `commons-io:commons-io` artifact " +"by installing `apache-commons-io` package." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:173 +msgid "" +"By default, `dnf repoquery` uses all enabled repositories in DNF " +"configuration, but it is possible to explicitly specify any other " +"repository. For example following command will query only Rawhide " +"repository:" +msgstr "" + +#. type: delimited block - +#: ./pages/introduction_for_developers.adoc:178 +#, no-wrap +msgid "" +"$ dnf repoquery --available --disablerepo \\* --enablerepo rawhide " +"--whatprovides 'mvn(commons-io:commons-io)'\n" +"apache-commons-io-1:2.4-10.fc20.noarch\n" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:182 +msgid "" +"Sometimes it may be useful to just list all the artifacts provided by given " +"package:" +msgstr "" + +#. type: delimited block - +#: ./pages/introduction_for_developers.adoc:191 +#, no-wrap +msgid "" +"$ dnf repoquery --provides apache-commons-io\n" +"apache-commons-io = 1:2.4-9.fc19\n" +"jakarta-commons-io = 1:2.4-9.fc19\n" +"mvn(commons-io:commons-io) = 2.4\n" +"mvn(org.apache.commons:commons-io) = 2.4\n" +"osgi(org.apache.commons.io) = 2.4.0\n" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:197 +msgid "" +"Output above means that package `apache-commons-io` provides two Maven " +"artifacts: previously mentioned `commons-io:commons-io` and " +"`org.apache.commons:commons-io`. In this case the second one is just an " +"alias for same JAR file. See section about " +"xref:jar_file_id_aliases.adoc#aliases[artifact aliases] for more information " +"on this topic." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:202 +msgid "" +"Another useful tool is `rpm`. It can do a lot of stuff, but most importantly " +"it can replace `dnf repoquery` if one only needs to query local RPM " +"database. Only installed packages, or local `.rpm` files, can be queried " +"with this tool." +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:205 +msgid "" +"Common use case could be checking which Maven artifacts provide locally " +"built packages." +msgstr "" + +#. type: delimited block - +#: ./pages/introduction_for_developers.adoc:212 +#, no-wrap +msgid "" +"$ rpm -qp --provides simplemaven-1.0-2.fc21.noarch.rpm\n" +"mvn(com.example:simplemaven) = 1.0\n" +"mvn(simplemaven:simplemaven) = 1.0\n" +"simplemaven = 1.0-2.fc21\n" +msgstr "" + +#. type: Title ==== +#: ./pages/introduction_for_developers.adoc:214 +#, no-wrap +msgid "Quiz for Java Developers" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:217 +msgid "How would you build a binary RPM if you were given a source RPM?" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:218 +msgid "What is most common content of Source0 `spec` file tag?" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:219 +msgid "What is the difference between `Version` and `Release` tags?" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:220 +msgid "How would you apply a patch in RPM?" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:221 +msgid "Where on filesystem should JAR files go?" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:222 +msgid "" +"What is the format of RPM changelog or what tool would you use to produce " +"it?" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:224 +msgid "" +"How would you install an application that needs certain layout (think " +"ANT_HOME) while honoring distribution filesystem layout guidelines?" +msgstr "" + +#. type: Plain text +#: ./pages/introduction_for_developers.adoc:225 +msgid "" +"How would you generate script for running a application with main class " +"org.project.MainClass which depends on commons-lang jar?" +msgstr ""