Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.java > #13062

Re: Ant an Kompilation hindern?

Path csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From ole-usenet-spam@gmx.net (Оlе Ѕtrеісhеr)
Newsgroups de.comp.lang.java
Subject Re: Ant an Kompilation hindern?
Date Wed, 21 Dec 2016 13:48:32 +0100
Lines 104
Message-ID <87lgv978in.fsf@gmx.net> (permalink)
References <87pokm7mab.fsf@gmx.net> <o3bm0f$lv1$1@newsreader4.netcologne.de>
Reply-To Оlе Ѕtrеісhеr <ole-usenet-10@gmx.net>
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
X-Trace individual.net zlTTXi0oFWbNhUcjZAzZ0Amt0em0FxwQHkr8hQB0VCz/TcLBbmWk8Q+g==
Cancel-Lock sha1:X/MrbKCYY9ooEaCX179yIDah1Rg= sha1:z4TkG/s/HYa1Am4SdRUB1ozZoNM=
User-Agent Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
Xref csiph.com de.comp.lang.java:13062

Show key headers only | View raw


Patrick Roemer <sangamon@netcologne.de> writes:
> Responding to Оlе Ѕtrеісhеr:
>> ich habe einen Quelltextbaum, den ich nur teilweise kompilieren
>> möchte. Der Rest steht als jar-Archiv zur Verfügung. Etwa so:
>> 
>> my/path/p1/C1.java
>> my/path/p2/C2.java
>> 
>> und ein jar, ds C2.class enthält. Im Ant-Target have ich entsprechend
>> auch nur C1.java als "includes" eingetragen.
>> 
>> Wenn C1 aber C2 importiert, dann wird auch C2 neu kompiliert (was nicht
>> funktioniert, weil es eine Änderung benötigen würde). Wie kann ich
>> erreichen, dass C2 unbedingt aus dem jar genommen und nicht neu
>> kompiliert wird, ohne dass ich C2.java lösche? Es hilft jedenfalls
>> nichts, es in "excludes" einzutragen.
>
> Der exakte Text Deines Targets wäre hier sinnvoll gewesen.

Kein Problem, es macht die Sache nur etwas komplexer:

<target name="build">
  <mkdir dir="${classes.dir}"/>
  <javac srcdir="${java.dir}"
    includes="uk/ac/starlink/soap/**/*.java uk/ac/starlink/task/**/*.java uk/ac/starlink/ttools/**/*.java uk/ac/starlink/vo/**/*.java uk/ac/starlink/array/Type.java uk/ac/starlink/util/gui/*.java"
    excludes="uk/ac/starlink/table/**/*.java" <!-- die will ich nicht compilieren -->
    destdir="${classes.dir}"
    includeantruntime="false"
    debug="${debug}"
    deprecation="${deprecation}"
    optimize="${optimize}"
    encoding="cp1252">

    <classpath>
       <fileset dir="/usr/share/java">
         <include name="jel.jar"/>
         <include name="stil.jar"/> <!-- Hier sind die Klassen drin -->
         <include name="jlatexmath.jar"/>
         <!-- hier folgen noch ein dutzend weitere -->
       </fileset>
    </classpath>
  </javac>
</target>

> <snip> [...] </snip>

So in etwa.

> $ tree bin/
> bin/
> └── bar
>     └── C2.class
>
> 1 directory, 1 file
> </snip>
>
> Etwa so?

Ich bekomme hier:
$ ls -lR bin/

bin/:
insgesamt 8
drwxr-xr-x 2 ole ole 4096 Dez 21 13:37 bar
drwxr-xr-x 2 ole ole 4096 Dez 21 13:37 foo

bin/bar:
insgesamt 4
-rw-r--r-- 1 ole ole 121 Dez 21 13:37 C2.class

bin/foo:
insgesamt 4
-rw-r--r-- 1 ole ole 121 Dez 21 13:37 C1.class

> Einen in sich inkonsistenten Sourcebaum halte ich allerdings für eine
> äußerst schlechte Idee.

Er ist ja nicht inkonsistent.

Erklärung: Ich brauche das, um Debian-Pakete zu bauen. Dazu ist es
nötig, dass einige Dateien angepasst werden; u.a. weil bestimmte
Abhängigkeiten in Debian nicht verfügbar sind. Diese Anpassungen
betreffen im vorliegenden Fall C1, das ich aber schon als eigenes Paket
pflege. In dem anderen Paket ist die Datei aber enthalten, weil der
Autor (von beiden Dateien) gerne möchte, dass man C2 auch kompilieren
kann, wenn man sich nicht vorher das andere Jar-File gebaut hat. In
Debian möchte ich dagegen keine Code-Kopien verwalten, sondern die
benötigten Klassen über Abhängigkeiten einbinden.

Ein Grund hier ist, dass ich die genannten nötigen Änderungen nur an
einer Stelle pflegen möchte -- bei C1. Daher lautet meine Aufgabe:
Kompiliere C2, ohne dass die Convenience Copy C1 mitkompiliert wird (was
zu einer Fehlermeldung führen würde).

Und erstaunlicherweise scheint es bei Dir zu klappen, bei mir jedoch
nicht.

Woran könnte das liegen? Wie kann ich Ant dazu bringen, lieber einen
Fehler zu melden als eine nicht in "includes" spezifizierte Datei zu
kompilieren?

Schöne Grüße

Ole

Back to de.comp.lang.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Ant an Kompilation hindern? ole-usenet-spam@gmx.net (Оlе Ѕtrеісhеr) - 2016-12-20 14:38 +0100
  Re: Ant an Kompilation hindern? Patrick Roemer <sangamon@netcologne.de> - 2016-12-20 17:24 +0100
    Re: Ant an Kompilation hindern? ole-usenet-spam@gmx.net (Оlе Ѕtrеісhеr) - 2016-12-21 13:48 +0100
      Re: Ant an Kompilation hindern? Patrick Roemer <sangamon@netcologne.de> - 2016-12-21 15:44 +0100
        Re: Ant an Kompilation hindern? ole-usenet-spam@gmx.net (Оlе Ѕtrеісhеr) - 2016-12-21 15:52 +0100
          Re: Ant an Kompilation hindern? Patrick Roemer <sangamon@netcologne.de> - 2016-12-21 17:12 +0100

csiph-web