iXdi - Σύγχρονος προγραμματισμός

Πώς να αφαιρέσετε όλα τα βάζα από μια εφαρμογή ελατηριωτών εκκίνησης χρησιμοποιώντας το maven

Πρέπει να αφαιρέσω όλα τα βάζα (ολόκληρους τους φακέλους lib και lib) από τον πόλεμο που χτίζω χρησιμοποιώντας την εκκίνηση της άνοιξης, καθώς η εφαρμογή Ιστού θα αναπτυχθεί στο Websphere, χρησιμοποιώντας κοινόχρηστες βιβλιοθήκες κοινών.

Υπάρχει κάποιος τρόπος να γίνει αυτό, καθώς οι εξαιρέσεις από το πρόσθετο πολέμου δεν μπορούν να χρησιμοποιηθούν και οι εξαιρέσεις από το πρόσθετο boot maven προορίζονται για ακριβή χρήση;

ΕΠΕΞΕΡΓΑΣΙΑ:

Το τρέχον POM μου:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>groupId</groupId>
    <artifactId>artifactId</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <packaging>war</packaging>

    <name>Application Name</name>
    <description>Application Description</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.7</java.version>
        <powermock.version>1.6.5</powermock.version>
        <snippetsDirectory>${project.build.directory}/generated-snippets</snippetsDirectory>
        <hibernate.version>4.2.15.Final</hibernate.version>
    </properties>

    <dependencies>
        <!-- SPRING DEPENDENCIES -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>hibernate-jpa-2.0-api</artifactId>
                    <groupId>org.hibernate.javax.persistence</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>hibernate-validator</artifactId>
                    <groupId>org.hibernate</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-legacy</artifactId>
            <version>1.0.2.RELEASE</version>
        </dependency>

        <!-- DATABASE RELATED DEPENDENCIES -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
            <scope>provided</scope>
        </dependency>

        <!-- TEST & DEVELOPEMENT DEPENDENCIES -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.restdocs</groupId>
            <artifactId>spring-restdocs-mockmvc</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <includes>
                        <include>**/*Documentation.java</include>
                    </includes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctor-maven-plugin</artifactId>
                <version>1.5.2</version>
                <executions>
                    <execution>
                        <id>generate-docs</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <backend>html</backend>
                            <doctype>book</doctype>
                            <attributes>
                                <snippets>${snippetsDirectory}</snippets>
                            </attributes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version><!--$NO-MVN-MAN-VER$ -->
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                ${project.build.outputDirectory}/static/docs
                            </outputDirectory>
                            <resources>
                                <resource>
                                    <directory>
                                        ${project.build.directory}/generated-docs
                                    </directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

  • μην χρησιμοποιείτε καθόλου την επανασυσκευασία. Απλά ένα κανονικό αρχείο πολέμου όπως θα κάνατε χωρίς το Spring Boot. 14.11.2016
  • Όχι αυτό που ψάχνω.. 14.11.2016
  • καλά δεν είναι ξεκάθαρο τι ψάχνεις. Το θέμα μου είναι ότι δεν υπάρχει τίποτα συγκεκριμένο για το Spring Boot σχετικά με την περίπτωση χρήσης σας. Απλώς χρησιμοποιήστε τον κανονικό πόλεμο εάν θέλετε να τον αναπτύξετε σε ένα περιβάλλον που παρέχει τις βιβλιοθήκες. Επομένως, μην χρησιμοποιείτε το repackage και την κανονική λειτουργία του maven-war-plugin. 14.11.2016
  • Ο @StephaneNicoll έχει δίκιο, δεν χρειάζεσαι Spring-boot αν αυτό που θέλεις είναι η ανάπτυξη web εφαρμογής σε οποιοδήποτε κοντέινερ. Αλλά αν επιμένετε, ελέγξτε την ενημερωμένη απάντησή μου. 14.11.2016

Απαντήσεις:


1

Αν εννοείτε ότι θέλετε να εξαιρέσετε τα βάζα μέσα στο your-project.war/WEB-INF/lib, τότε θα μπορούσατε να δοκιμάσετε να χρησιμοποιήσετε το <scope>provided</scope>.

Παράδειγμα

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.1-api</artifactId>
    <version>1.0.0.Final</version>
    <scope>provided</scope>
</dependency>

Αυτό είναι παράδειγμα για εσάς.

ΕΠΕΞΕΡΓΑΣΙΑ

Κοιτάζοντας και δοκιμάστε το pom.xml σας, θα μπορούσατε να αφαιρέσετε αυτές τις γραμμές:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

Με αυτό, δεν μπορώ πλέον να δω τον κατάλογο που παρέχεται από lib.

HTH.

14.11.2016
  • Αυτή είναι μια μερική λύση στο πρόβλημά μου, αφού όλα μπαίνουν μέσα υπό την προϋπόθεση lib... Πρέπει να έχω ένα πιο ελαφρύ αρχείο πολέμου... 14.11.2016
  • Τι είναι ένας φάκελος lib-provided; Πού παραμένει στην αίτησή σας; 14.11.2016
  • Όταν δημιουργώ την εφαρμογή μου, μέσα στο WEB-INF, έχω και lib και lib-provided. Το lib-provided περιέχει όλα τα βάζα που έχουν επισημανθεί όπως παρέχονται στο pom μου. 14.11.2016
  • Υπάρχει αυτό το lib-provided στον κατάλογο του έργου σας; Επειδή το AFAIK, η τυπική δομή έργου maven δεν έχει κατάλογο με το όνομα lib-provided. Ή, αν δεν σας πειράζει, βάλτε το pom.xml και οποιοδήποτε σχετικό αρχείο maven στην ερώτησή σας. Αφαιρέστε οποιονδήποτε κωδικό πρόσβασης ή τυχόν ευαίσθητα δεδομένα εάν υπάρχουν. 14.11.2016
  • Νέα υλικά

    Το Python Selenium Web Scraping σας κατέβασε το 2023; Εκκαθαρίστε την προσωρινή μνήμη και ενισχύστε τα αποτελέσματά σας!
    Η απόξεση ιστού με το Python Selenium είναι ένα εξαιρετικό εργαλείο για την εξαγωγή δεδομένων από ιστοσελίδες. Ωστόσο, περιστασιακά, οι ιστοσελίδες ενδέχεται να αποτύχουν να φορτώσουν ή να..

    Έννοιες JavaScript που πρέπει να γνωρίζετε για να ξεκινήσετε με το React
    Αφού είδα αυτή την ερώτηση να τίθεται αμέτρητες φορές, πιστεύω ότι μπορεί να είναι χρήσιμο σε πολλούς ανθρώπους εκεί έξω να έχουν μια σαφή κατανόηση του τι χρειάζεται να είναι γνωστό στο..

    Χρήση της C++ ως γλώσσας δέσμης ενεργειών, μέρος 8
    Βελτίωση κλήσεων λειτουργιών API με χρήση ενσωματωμένης συναρμολόγησης Έχω πειραματιστεί με την ενσωματωμένη συναρμολόγηση στο παρελθόν με κάποια επιτυχία. Είναι περίπλοκο και εύκολο να κάνεις..

    5 αμυχές που πρέπει να γνωρίζετε για να γίνετε σπουδαίος προγραμματιστής.
    5 αμυχές που πρέπει να γνωρίζετε για να γίνετε σπουδαίος προγραμματιστής. Αυτές τις μέρες, πολλοί φιλοδοξούν να εργαστούν ως προγραμματιστές. Αλλά το να γίνεις σπουδαίος προγραμματιστής δεν..

    Πώς να εφαρμόσετε το Deep Learning σε δομημένα δεδομένα
    Η βαθιά μάθηση είναι ένα καυτό και περιζήτητο θέμα τώρα ως μέρες. Η επιτυχία του προέρχεται από το γεγονός ότι είναι εξαιρετικά αποτελεσματικό στην επίλυση σύνθετων προβλημάτων και στην επίτευξη..

    Είναι το AI καλύτερο από τα ζώα στο να βλέπουν στο σκοτάδι;
    Τέχνη Μηχανικής Εκμάθησης Είναι η τεχνητή νοημοσύνη καλύτερη από τα ζώα στο να βλέπουν στο σκοτάδι; Τα όρια της όρασης ρομπότ στο ακραίο σκοτάδι Μελέτη της συμπεριφοράς των ζώων τη..

    Νέα δυνατότητα: Αναπτύξτε περισσότερο τον ανοιχτό κώδικα με το IssueHunt Upvotes
    Είμαστε στην ευχάριστη θέση να σας παρουσιάσουμε τη νεότερη λειτουργία μας: IssueHunt Upvote , τον τέλειο τρόπο υποστήριξης, κοινής χρήσης και παρακολούθησης του αγαπημένου σας ανοιχτού..