Используйте плагин maven-shade для упаковки всех зависимостей в одну uber-jar. Его также можно использовать для создания исполняемого банку, указав основной класс. Попробовав использовать maven-assembly и maven-jar, я обнаружил, что этот плагин лучше всего подходит для моих потребностей.
Я нашел этот плагин особенно полезным, так как он объединяет содержимое определенных файлов, а не перезаписывает их. Это необходимо, когда есть файлы ресурсов, которые имеют одно и то же имя в банках, и плагин пытается упаковать все файлы ресурсов
. См. Пример ниже
<plugins>
<!-- This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to shade - i.e. rename - the packages of some of the dependencies. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<!-- signed jars-->
<excludes>
<exclude>bouncycastle:bcprov-jdk15</exclude>
</excludes>
</artifactSet>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!-- Main class -->
<mainClass>com.main.MyMainClass</mainClass>
</transformer>
<!-- Use resource transformers to prevent file overwrites -->
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>properties.properties</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>applicationContext.xml</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/cxf/cxf.extension</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
<resource>META-INF/cxf/bus-extensions.xml</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Редактирование: как ни странно, после наших комментариев выше, я проверил, действительно ли это версия базового модуля babel, я использую это в своей скрипке:
https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js
Второе, я перехожу к вашей версии выше, я получаю следующее:
Uncaught TypeError: Cannot read property 'keys' of undefined
Используйте React.createClass
not ReactDOM.createClass
и оберните несколько строк html в круглых скобках, например:
Working Пример: https://jsfiddle.net/69z2wepo/38998/
var Hello = React.createClass({
render: function() {
return (
<div>
<h1>Hello World</h1>
<p>This is some text</p>
</div>
)
}
});
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
Я раньше не работал с React, но есть несколько вещей, которые, как я вижу, могут вызывать проблемы. Во-первых, React.createClass
вместо ReactDOM.createClass
. Во-вторых, вам нужно обернуть ваш html в круглые скобки:
var HelloWorld = React.createClass({
render: function() {
return (
<div>
<h1>Hello World</h1>
<p>This is some text></p>
</div>
);
}
});
Это должно заставить его работать
Сегодня мой первый день с React, и я столкнулся с этой проблемой, когда попытался использовать Babel для перевода JSX!
Проблема - это версия, которую вы пытаетесь использовать, пожалуйста, используйте эту один вместо этого:
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script>
Не забудьте написать type="text/babel"
в теге <script>
, который вы напишете в JSX, чтобы позволить Babel перекрыть его для вас, если вы этого не сделаете, вы найдет эту ошибку (Поскольку я тоже столкнулся с этим: D) :
Uncaught SyntaxError: Unexpected token <
Просто чтобы быть ясным, так как другие ответы немного запутаны. Проблема заключалась в использовании «babel-core» вместо «babel-standalone». Просто найдите cdn для babel-standalone вместо этого.
https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.js